Commit graph

148 commits

Author SHA1 Message Date
Bond_009 b1fe28d0a6 Use GetEncodingOptions where possible 2021-02-21 02:58:30 +01:00
Bond_009 1ea2b200c0 JsonSerializer deserialize from bytes where possible
This is faster and uses way less memory
```
BenchmarkDotNet=v0.12.1, OS=fedora 32
Intel Core i7-6700HQ CPU 2.60GHz (Skylake), 1 CPU, 8 logical and 4 physical cores
.NET Core SDK=5.0.100
  [Host]     : .NET Core 5.0.0 (CoreCLR 5.0.20.51904, CoreFX 5.0.20.51904), X64 RyuJIT
  DefaultJob : .NET Core 5.0.0 (CoreCLR 5.0.20.51904, CoreFX 5.0.20.51904), X64 RyuJIT

| Method |     Mean |   Error |  StdDev |   Gen 0 | Gen 1 | Gen 2 | Allocated |
|------- |---------:|--------:|--------:|--------:|------:|------:|----------:|
|  Bytes | 158.4 us | 2.56 us | 2.14 us | 16.8457 |     - |     - |  52.08 KB |
| String | 172.8 us | 0.78 us | 0.70 us | 41.5039 |     - |     - | 127.82 KB |
| Custom | 155.5 us | 2.95 us | 2.76 us | 10.0098 |     - |     - |  31.27 KB |
```
2021-01-12 15:28:02 +01:00
crobibero 3a6501abe0 Fix another key collision in MigrateDisplayPreferencesDatabase 2020-12-21 17:28:06 -07:00
Claus Vium 21d2e9ff0c
Merge pull request #4771 from crobibero/typed-get-preference
Use typed UserManager GetPreference
2020-12-16 22:15:56 +01:00
crobibero b670937c3d Use typed UserManager GetPreference 2020-12-11 15:00:43 -07:00
crobibero eefe87f537 Remove CustomItemDisplayPreferences unique key collision 2020-12-06 09:11:00 -07:00
Joshua M. Boniface b96d4ef0e8
Merge pull request #4653 from crobibero/favorite-persons
Optimize FavoritePersons query
2020-12-04 20:05:35 -05:00
Joshua M. Boniface 4e6584c345
Merge pull request #4652 from crobibero/display-preferences
Add support for custom item display preferences
2020-12-04 20:05:04 -05:00
crobibero 76250a8895 Use md5 Guid for legacy compat 2020-12-04 16:27:31 -07:00
crobibero 3db6ae91f6 Add ItemId to all display preferences 2020-12-04 16:00:11 -07:00
crobibero 60b7e49a7f Suggestions from code review 2020-12-04 08:00:55 -07:00
crobibero e765184afa Fix existing DisplayPreferences migration 2020-12-03 15:00:26 -07:00
crobibero 589625a349 Don't die if folder doesn't have id 2020-12-01 17:36:36 -07:00
Greenback 14fc7e6408 revert changes. 2020-11-19 15:40:20 +00:00
Greenback 18855a7884 Initialial upload 2020-11-19 13:34:09 +00:00
Cody Robibero 1d059bc76b
Update Jellyfin.Server/Migrations/Routines/MigrateDisplayPreferencesDb.cs 2020-11-12 07:33:12 -07:00
crobibero 7375d70396 Skip migration if user doesn't exist 2020-11-11 07:17:19 -07:00
Fernando Fernández 27a1337cf3
Remove underscore
Co-authored-by: Claus Vium <cvium@users.noreply.github.com>
2020-11-10 10:24:05 +01:00
Fernando Fernández d6a04fd406 Remove setting from existing libraries with a migration 2020-11-10 02:12:50 +01:00
crobibero ec8967b8e6 Fix partial library and channel access 2020-08-27 10:00:06 -06:00
crobibero de4cfa2234 Apply suggestions from code review 2020-08-26 08:45:59 -06:00
crobibero 78ae86b86a Apply suggestions from code review 2020-08-26 08:23:35 -06:00
crobibero 5f64ab02a0 bump System.Text.Json 2020-08-25 07:33:58 -06:00
Patrick Barron ad32800504 Switch to unstable chromecast version. 2020-08-01 14:56:32 -04:00
Patrick Barron a6bc4c688d Add using statement to DisplayPreferences migration 2020-08-01 14:52:45 -04:00
Patrick Barron c094916df0 Migrate default library display preferences. 2020-07-28 09:19:25 -04:00
Patrick Barron 4b8ab1a803 Set default value of SortBy during migrations. 2020-07-27 21:01:08 -04:00
Patrick Barron 754837f16f Add tv home. 2020-07-27 20:50:58 -04:00
Patrick Barron 68a185fd02 Serialize/deserialize new entities properly. 2020-07-27 20:40:21 -04:00
Patrick Barron 9fcf23bd21 Migrate EnableNextVideoInfoOverlay 2020-07-24 16:34:19 -04:00
Patrick Barron 0d13d830bb Migrate skip lengths. 2020-07-24 16:30:54 -04:00
Patrick Barron 629ffe395f Fixed build errors. 2020-07-23 20:36:36 -04:00
Patrick Barron 3d69cea1c9
Merge branch 'master' into displaypreferences-efcore 2020-07-23 23:50:12 +00:00
Patrick Barron 9f323e5579 Add missing chromecast version serialization/deserialization. 2020-07-22 14:37:17 -04:00
crobibero 6c076b2162 Try adding plugin repository again 2020-07-21 08:27:12 -06:00
crobibero 9343e73b26 Allow migration to optionally run on fresh install 2020-07-20 07:45:24 -06:00
Patrick Barron ab396225ea Migrate Display Preferences to EF Core 2020-07-17 16:11:53 -04:00
dkanada 3d65cbdf07
apply suggestions from code review
Co-authored-by: Vasily <JustAMan@users.noreply.github.com>
2020-06-22 21:59:56 +09:00
dkanada e77f6194f2
add missing comma in array 2020-06-17 02:16:17 +09:00
dkanada f5d82441a4
Merge branch 'master' into custom-repos 2020-06-17 02:09:32 +09:00
Patrick Barron 42b4f0aa2e Merge branch 'master' into userdb-efcore
# Conflicts:
#	Emby.Server.Implementations/Library/UserManager.cs
#	Jellyfin.Data/Jellyfin.Data.csproj
2020-06-13 19:41:05 -04:00
dkanada 403cd3205f
Merge pull request #3254 from crobibero/ilogger
Use typed logger where possible
2020-06-13 00:29:43 +09:00
Patrick Barron 7a115024aa Merge branch 'master' into userdb-efcore
# Conflicts:
#	MediaBrowser.Controller/Library/ILibraryManager.cs
#	MediaBrowser.Providers/Users/UserMetadataService.cs
2020-06-11 18:23:12 -04:00
dkanada 5cdf951643
Merge pull request #3222 from barronpm/activitylog-migration-fix
Fix Activity Log Migrations for Very Old Databases
2020-06-11 19:27:42 +09:00
dkanada 8ac2f1bb8b simplify the custom repository feature for now 2020-06-06 22:02:30 +09:00
dkanada d6184dbadd remove unnecessary property for repository object 2020-06-06 18:57:00 +09:00
crobibero 44957c5a9a Use typed logger where possible 2020-06-05 18:15:56 -06:00
crobibero 340624c54b Move default repo addition to migration 2020-06-05 13:23:38 -06:00
Patrick Barron 06f9cde22f Merge branch 'master' into userdb-efcore
# Conflicts:
#	Emby.Server.Implementations/EntryPoints/ServerEventNotifier.cs
#	Emby.Server.Implementations/Library/UserManager.cs
#	Emby.Server.Implementations/Sorting/IsFavoriteOrLikeComparer.cs
#	Emby.Server.Implementations/Sorting/IsPlayedComparer.cs
#	Emby.Server.Implementations/Sorting/IsUnplayedComparer.cs
#	Emby.Server.Implementations/TV/TVSeriesManager.cs
#	Jellyfin.Server.Implementations/Users/DefaultAuthenticationProvider.cs
2020-06-04 16:52:23 -04:00
Patrick Barron ef7bbb3b84 Use data binding instead of raw SQL 2020-06-04 14:54:43 -04:00
Patrick Barron b0281b79fd Fix a bug where very old Emby databases didn't use proper Guid's 2020-06-01 20:12:34 -04:00
Bond_009 4748105dce Enable TreatWarningsAsErrors for Jellyfin.Server.Implementations in Release mode 2020-05-29 11:28:19 +02:00
Patrick Barron 8ca78f33e9 Fix bug when migrating user db with users that have never logged in. 2020-05-28 14:21:26 -04:00
Patrick Barron fefb282137 Fixed issue when LastLoginDate or LastActivityDate were null 2020-05-26 22:30:23 -04:00
Patrick Barron 46a0a2a601 Update migrations and fix a few bugs 2020-05-26 21:20:55 -04:00
Patrick Barron e052128c52 Cleanup and fix more bugs 2020-05-23 16:07:42 -04:00
Patrick Barron e8173df9dc Cleanup 2020-05-23 15:33:14 -04:00
Patrick Barron 7d9d54d2ec Fix profile images. 2020-05-20 12:09:52 -04:00
Patrick Barron 1d1a145ad4 Fix issues and add profile image support 2020-05-20 10:04:00 -04:00
Patrick Barron e7b297c67b Add some missing properties 2020-05-20 10:04:00 -04:00
Patrick Barron 3eeb6576d8 Migrate User DB to EF Core 2020-05-20 10:04:00 -04:00
Patrick Barron aca7e221d8 Merge branch 'master' into userdb-efcore
# Conflicts:
#	Emby.Server.Implementations/Activity/ActivityLogEntryPoint.cs
#	Emby.Server.Implementations/ApplicationHost.cs
#	Emby.Server.Implementations/Devices/DeviceManager.cs
#	Jellyfin.Server/Jellyfin.Server.csproj
#	Jellyfin.Server/Migrations/MigrationRunner.cs
#	MediaBrowser.Controller/Devices/IDeviceManager.cs
2020-05-15 17:20:07 -04:00
Mark Monteiro 757643e326 Merge remote-tracking branch 'upstream/master' into no-more-doppelgangers 2020-05-15 15:23:44 -04:00
Mark Monteiro 6e68702799 Do not run DELETE command if no extras are detected
Also log a message if no extras were detected 
Also log the path used for the database backup
Also add some comments to explain the migration
2020-05-15 15:12:26 -04:00
Vasily 43dc604e87 Fixed compilation, added backing db before removing extras 2020-05-15 21:49:45 +03:00
Patrick Barron 79dee27299 Fixed indentation 2020-05-15 14:33:36 -04:00
Vasily 034fe97eeb
Apply suggestions from code review
Co-authored-by: Mark Monteiro <marknr.monteiro@protonmail.com>
2020-05-15 21:32:56 +03:00
Patrick Barron a7c2e524a9 Apply more review suggestions 2020-05-15 14:09:15 -04:00
Patrick Barron a5dee36808 Apply more review suggestions 2020-05-15 12:51:18 -04:00
Vasily 7c57134535 Implement a cleanup migration 2020-05-15 02:30:28 +03:00
Patrick Barron 9925742918 Implement more review suggestions 2020-05-13 17:55:31 -04:00
Patrick Barron 511d20a100 Apply review suggestions 2020-05-13 15:03:35 -04:00
Patrick Barron b7621d762c 2nd half of changes 2020-05-13 00:00:57 -04:00
Patrick Barron c1360a1dc3 Merge branch 'master' into userdb-efcore
# Conflicts:
#	Emby.Server.Implementations/Data/SqliteUserDataRepository.cs
#	Emby.Server.Implementations/Library/UserManager.cs
#	Jellyfin.Data/Entities/User.cs
#	Jellyfin.Data/ISavingChanges.cs
#	Jellyfin.Server.Implementations/Jellyfin.Server.Implementations.csproj
#	Jellyfin.Server.Implementations/JellyfinDb.cs
#	Jellyfin.Server/Migrations/MigrationRunner.cs
#	MediaBrowser.Model/Notifications/NotificationOptions.cs
#	MediaBrowser.sln
2020-05-12 22:22:20 -04:00
Patrick Barron 9ad839c776 Initial migration code 2020-05-12 22:10:35 -04:00
Patrick Barron bac4bf96a0 Fix build errors 2020-05-12 12:50:17 -04:00
Patrick Barron 6379391f87
Merge branch 'master' into activitydb-efcore 2020-05-12 16:08:28 +00:00
Patrick Barron 032de931b1 Migrate activity db to EF Core 2020-05-02 18:32:22 -04:00
Mark Monteiro 1666f3ca14 Use dependency injection to construct migration routines 2020-04-16 23:40:32 -04:00
Bond_009 e9d1eabd53 Remove unused usings 2020-03-24 16:12:06 +01:00
Mark Monteiro 9e89cbbc3a Store migration names alongside Ids in configuration in order to assist with development/debugging 2020-03-08 17:40:30 +01:00
Mark Monteiro 72bf920291 Use a Guid to uniquely identify migrations instead of a string name
Also use a list instead of an array to store executed migrations in the configuration class
2020-03-08 16:05:31 +01:00
Mark Monteiro 8dbb1c9257 Use logging.json instead of logging.user.json for override settings 2020-03-08 15:46:13 +01:00
Mark Monteiro 2f0b4cc24c Clean up migration logging messages 2020-03-08 15:02:59 +01:00
Mark Monteiro a0fdceb4bc Throw exception on migration failure to halt application
Also save migration configuration after each migration instead of at the end in case an exception is thrown part way through the list
2020-03-08 15:02:42 +01:00
Joshua M. Boniface ae9948ce04
Merge branch 'master' into logging-migration 2020-03-07 21:19:24 -05:00
Mark Monteiro 1295f6c79b Documentation and log message cleanup 2020-03-07 20:26:06 +01:00
Mark Monteiro 7ecb16a46e
do not ignore exceptions during migration execution 2020-03-07 18:23:32 +01:00
Mark Monteiro 4c2b543b30 Rename IUpdater to IMigrationRoutine 2020-03-06 21:51:50 +01:00
Mark Monteiro 1a9908d094 Add migration to create "logging.user.json" 2020-03-06 19:11:42 +01:00
Vasily 5a0f1fe848 Implement review suggestion 2020-03-06 19:01:07 +03:00
Vasily 098d3538e3 Disable logging.json migration as it is not ready yet 2020-03-06 17:22:22 +03:00
Vasily d4564d8e29 More logging, mark all migrations as applied if setup wizard is not complete 2020-03-06 13:22:44 +03:00
Vasily 216e425cc5 Fix comment 2020-03-05 20:52:00 +03:00
Vasily 55b429e5e8 Moved migration routines to their own directory 2020-03-05 20:40:17 +03:00
Vasily ccafebca68 Extract "migrations" config name to a proper constant 2020-03-05 20:37:49 +03:00
Vasily ecaa7f8014 Improve migration logic 2020-03-05 20:09:33 +03:00
Vasily 66e11879ef Shuffle migrations in a more manageable structure 2020-03-05 18:21:27 +03:00