Enable DB table names customization #535
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
With this patch it is possible to assign custom table names for
GoodJob::Process
andGoodJob::ActiveJobJob
and havegood_job
function as usual.It enables the use of a common database for two or more schedulers while keeping the dashboard functional.
My motive was working on two apps that share a database and both need to run a scheduler and we want to run
good_job
because well, it's too good for our use case :). I believe this is a legit, while ugly, requirement in some projects.There is no need to complicate things by making the migrations take the custom table names into account for upgrades. It is possible, but the added complexity would possibly make migrations fragile and certainly harder to reason about. After all, anyone who opts to change the table name this way would review migrations coming from updates before running them. Even if not, they would fail and the person would iterate.
The table names have been added without quoting into the SQL code because, well, it's a table name.
I like to believe that the only reason to consider not including this is that future code would need to use table names via model classes instead of hardcoded, which is not necessarily a bad thing.