[英]Run only the next migration file
是否可以使用 sequelize-cli 僅運行下一個遷移文件?
我一直在查看 cli 的文檔和幫助部分,它似乎不是這樣的功能。
例如,我在運行sequelize db:migrate:status
命令時有以下內容;
Loaded configuration file "config/config.js".
Using environment "development".
up 20170301090141-create-something.js
up 20170301133113-create-else.js
up 20170301133821-Update-some-stuff.js
up 20170301135339-create-some-model.js
up 20170307152706-update-some-stuff-two.js
down 20170316142544-create-an-index.js
down 20170421112638-do-some-refactor.js
我只想運行20170316142544-create-an-index.js
。
當然,我可以刪除所有相關文件。 然后我將每個遷移一一添加回來,在每個遷移之間運行“所有”遷移。 但這似乎太野蠻了。
我是從 Google 來到這里的,但在 doc 中找不到任何選項。 但是,CLI sequelize-cli db:migrate --help
顯示了一個選項,用於選擇要運行的遷移范圍。
他們是:
--to Migration name to run migrations until
--from Migration name to start migrations from (excluding)
顯然,您需要提供確切的文件名而不是遷移名稱。 (在源代碼中找到)
域名注冊地址:
npx sequelize-cli db:migrate --from will-not-be-included.js --to filename.js
我想這個問題已經回答了,但有些人仍然感到困惑。 我將嘗試直接回答這個特定問題:
npx sequelize-cli db:migrate --to 20170316142544-create-an-index.js
在這種特殊情況下沒有必要添加的選項--from
,因為20170316142544-create-an-index.js
是要應用的下一個遷移。
但如果問題是:
我只想運行
20170421112638-do-some-refactor.js
然后您將不得不使用選項--from
跳轉所有其他遷移,直到所需的遷移。 在這種情況下:
npx sequelize-cli db:migrate --from 20170316142544-create-an-index.js --to 20170421112638-do-some-refactor.js
事情是,Sequelize 只執行那些尚未執行的遷移,即掛起的 Means。
這意味着當您運行命令sequelize:migrate 時,它只會執行那些仍在等待中的人。
我認為您制作了所有模型,然后您正在嘗試運行遷移。
所以,我找到了一個解決方案,我不知道這是否是個好主意。 Sequelize 使用即時實際日期命名遷移文件。 因此,如果您更改另一個想要的文件的第一個名稱字符串,ei
20190717191628-create-team.js
20190717191909-create-player.js
**for**
20190717191909-create-team.js
20190717191628-create-player.js
之后,根據需要對所有文件進行排序,然后運行db:migrate命令。
您可以簡單地更改遷移文件夾中的文件順序。 由於文件名總是以時間戳開頭,因此為了更改遷移順序,您只需要通過重命名文件來相應地更新時間戳。
20170316142544-create-an-index.js。 只需查看最新運行的遷移並添加重命名此遷移時間戳,並在執行的時間戳旁邊添加時間戳。 在它之后添加一些錯別字或將它們移出文件夾一秒鍾然后遷移。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.