Improve migrations and add support for plugins #1350

Open
opened 2025-12-21 18:34:03 +01:00 by backuprepo · 6 comments
Owner

Originally created by @mark-monteiro on GitHub (Mar 8, 2020).

  • Load migrations via reflection instead of hard-coding them into the migration runner. A timestamp property will need to be added to each migration and the migration runner updated to sort the migrations by timestamp in order to define the order that the migrations are run.
  • Prefix each migration file name with the same timestamp as used in the property. This will keep the migrations sorted in the correct order when displayed in the filesystem, IDEs etc.
  • Update migration runner to also log the migration namespace along side the name when executing migrations. This will be helpful when executing migrations from multiple plugins.
  • Migration running logic should be in Emby.Server.Implementations instead of Jellyfin.Server
  • Instantiate each migration using the dependency injection framework instead of manually. This way each routine can specify its own dependencies independently and it will also not be necessary to pass ApplicationHost or ILogger instances to the Run() method (#2900)
Originally created by @mark-monteiro on GitHub (Mar 8, 2020). - [ ] Load migrations via reflection instead of hard-coding them into the migration runner. A timestamp property will need to be added to each migration and the migration runner updated to sort the migrations by timestamp in order to define the order that the migrations are run. - [ ] Prefix each migration file name with the same timestamp as used in the property. This will keep the migrations sorted in the correct order when displayed in the filesystem, IDEs etc. - [ ] Update migration runner to also log the migration namespace along side the name when executing migrations. This will be helpful when executing migrations from multiple plugins. - [ ] Migration running logic should be in `Emby.Server.Implementations` instead of `Jellyfin.Server` - [x] Instantiate each migration using the dependency injection framework instead of manually. This way each routine can specify its own dependencies independently and it will also not be necessary to pass `ApplicationHost` or `ILogger` instances to the `Run()` method (#2900)
backuprepo added the
enhancement
backend
good first issue
labels 2025-12-21 18:34:03 +01:00
Author
Owner

@sevenrats commented on GitHub (Oct 4, 2023):

@mark-monteiro what is the status of this issue?

@sevenrats commented on GitHub (Oct 4, 2023): @mark-monteiro what is the status of this issue?
Author
Owner

@mark-monteiro commented on GitHub (Oct 5, 2023):

@sevenrats Have not worked on any of the remaining tasks here and do not have time any more to work on this.

I created this issue when the migration framework was first implemented and had some ideas of how it could be improved. I'm not sure how much demand there actually is for migration support in plugins, I don't think it's something that has really come up. I would be okay if this was closed, I'll leave it up to the triage team.

@mark-monteiro commented on GitHub (Oct 5, 2023): @sevenrats Have not worked on any of the remaining tasks here and do not have time any more to work on this. I created this issue when the migration framework was first implemented and had some ideas of how it could be improved. I'm not sure how much demand there actually is for migration support in plugins, I don't think it's something that has really come up. I would be okay if this was closed, I'll leave it up to the triage team.
Author
Owner

@Bond-009 commented on GitHub (Oct 11, 2023):

This looks easy enough

@Bond-009 commented on GitHub (Oct 11, 2023): This looks easy enough
Author
Owner

@srcrist commented on GitHub (Oct 19, 2023):

@Bond-009 Were you interested in working on this? Should it be moved to "todo"?

@srcrist commented on GitHub (Oct 19, 2023): @Bond-009 Were you interested in working on this? Should it be moved to "todo"?
Author
Owner

@LezardSC commented on GitHub (Nov 28, 2025):

Hi, I'm searching for a not too hard issue to start working on the project. Is this issue still valid? If yes, I would love to give it a try.

@LezardSC commented on GitHub (Nov 28, 2025): Hi, I'm searching for a not too hard issue to start working on the project. Is this issue still valid? If yes, I would love to give it a try.
Author
Owner

@mark-monteiro commented on GitHub (Dec 9, 2025):

@LezardSC I haven't been involved in the project in a while so I'm not 100% sure, but as far as I know this still hasn't been implemented. It might be a good idea to also check in with the development chat room before starting, especially since it's your first issue in the project.

@mark-monteiro commented on GitHub (Dec 9, 2025): @LezardSC I haven't been involved in the project in a while so I'm not 100% sure, but as far as I know this still hasn't been implemented. It might be a good idea to also check in with the [development chat room](https://jellyfin.org/contact) before starting, especially since it's your first issue in the project.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: starred/jellyfin#1350
No description provided.