adonisjs / lucid

AdonisJS SQL ORM. Supports PostgreSQL, MySQL, MSSQL, Redshift, SQLite and many more
https://lucid.adonisjs.com/
MIT License
1.03k stars 189 forks source link

feat: add disable-locks flag #932

Closed Reptiluka closed 1 year ago

Reptiluka commented 1 year ago

Proposed changes

Adding a new command flag to disable locks during migration As seen in : https://github.com/planetscale/discussion/discussions/307 https://github.com/planetscale/discussion/discussions/439 There is some problem with the lock currently with the "new" cloud mysql provider Planetscale

Types of changes

What types of changes does your code introduce?

Put an x in the boxes that apply

Checklist

Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.

Further comments

As Planetscale provide a safe migration process : https://planetscale.com/docs/concepts/safe-migrations It could be ok to disable the lock to update the dev branch and then in their dashboard open a migration process to do the migration in production. With that, maybe during their deploy they use some kind of lock under the hood to keep it safe as we wanted.

Also in the Planetscale settings, we could change the Migration table name settings to adonis_schema and when the migration to prod is done, it will copy the row from that table from dev to prod.

As you can see in the Checklist, i didn't do the test because I just don't know how to test my changes. So I tried my best to edit that code to give the idea 🙂

thetutlage commented 1 year ago

Thanks for the PR. I will take a look at it in some time and see if this is all we need to get it to work with planetscale.

thetutlage commented 1 year ago

Looks great. Thanks for the PR

thetutlage commented 1 year ago

Release as @adonisjs/lucid@18.4.0

Reptiluka commented 1 year ago

It's works great, thanks ! 🙂 image