我想看看這個rake任務寫在哪裏以及它如何找到db遷移到的地方。bundle exec rake db:migrate從哪裏來?
回答
此任務是ActiveRecord
的一部分。您可以在此處看到它的定義:database_tasks.rb
基本上任務調用ActiveRecord::Migrator
它是負責將遷移應用到數據庫的模塊。
例如,如果你創建一個新的遷移,你會得到下面的輸出:
Running via Spring preloader in process 4675
invoke active_record
create db/migrate/20170621091940_create_user.rb
當你調用db:migrate
任務,它會調用ActiveRecord::Migrator.migrate("db/migrate", 20170621091940)
和應用遷移。
db:migrate
是一個佣金任務。 db:遷移任務(內置Rails支持程序)將搜索項目的db/migrate目錄並使用其中的文件更新數據庫的模式。
當您運行db:migrate時,rails將檢查一個名爲schema_migrations的特殊表,其中包含應用於數據庫的上次遷移的時間戳。它將存儲已運行的遷移文件的時間戳。
所以這個任務可以運行,不管有沒有一個rails服務器運行? – stackjlei
是的,Rake任務不需要服務器運行。 –
- 1. 「bundle exec rake db:migrate」是做什麼的?
- 2. bundle exec rake db:migrate cause「找不到可執行的rake」錯誤
- 3. Bundle exec rake db:migrate不起作用(並且rake db:migrate也不起作用),Ubuntu
- 4. bundle exec rake db:migrate - schema.rb沒有索引重新生成
- 5. bundle exec rake assets:預編譯
- 6. rails db:migrate vs rake db:migrate
- 7. 使用bundle exec rake或只是耙?
- 8. 嘗試bundle exec時未定義的方法'strong'rake db:migrate
- 9. 從rake db:structure:dump的結構來自哪裏?
- 10. 非交互式執行bundle exec rake db:configure_admin
- 11. Rake db:migrate error-SQLite3
- 12. rake db:migrate bundle:command not found
- 13. bundle exec rake db:遷移在Amazon EC2和RDS上掛起
- 14. rake db:migrate(error)!
- 15. heroku rake db:migrate aborting
- 16. Heroku rake db:migrate
- 17. Heroku run rake db:migrate not working
- 18. rake db:migrate alter table name
- 19. 在Ruby on Rails中使用bundle exec
- 20. rake db:migrate無法正常工作
- 21. rake db:migrate failed with error:「rake aborted!undefined method deprecate'for#<Rake :: Application:0x1e0c6c0>」
- 22. Rspec和bundle exec
- 23. cron和bundle exec問題
- 24. rake db:migrate - 未初始化的常量WickedPdf
- 25. rake db:migrate返回「rake:是一個目錄」?
- 26. rake在rake數據庫後遷移db:migrate
- 27. rake db:migrate - > stack level too
- 28. Can not heroku運行rake db:migrate
- 29. 如何使用rake db:migrate
- 30. 無法運行rake db:migrate
[鏈接](https://github.com/rails/rails/blob/2dfe8f1f84b7c4ff6673e7035adbeecaf31734b0/railties/lib/rails/tasks/engine.rake#L31) – ndn