Jay*_*Jay 5 ruby ruby-on-rails ruby-on-rails-4
如何在rake db:migrate:status中删除带有"**NO FILE**"的迁移ID列表?例如:
Status Migration ID Migration Name
--------------------------------------------------
up 20131017204224 Create users
up 20131218005823 ********** NO FILE **********
up 20131218011334 ********** NO FILE **********
Run Code Online (Sandbox Code Playgroud)
我不明白为什么当我在玩游戏如何工作时自己手动删除它时,它仍会保留旧的迁移文件.这是为了保存记录吗?但是当我没有与之相关的名称时,有什么用呢?
我尝试对这些文件使用db:migrate:down命令,但它说文件丢失了.我不知道该怎么做.
有人可以解释如何删除此列表,也许可以了解为什么会发生这种情况.
小智 8
您删除了该文件,但ID仍在架构表中.
只需登录mysql
SELECT * FROM schema_migrations; *- take note of the version_id*
Run Code Online (Sandbox Code Playgroud)
然后
DELETE FROM schema_migrations WHERE VERSION = version_id;
Run Code Online (Sandbox Code Playgroud)
然后注销并验证
rake db:migrate:status
Run Code Online (Sandbox Code Playgroud)
小智 5
您也可以使用SQL,但可以通过Rails控制台将其删除。
sql = "DELETE FROM schema_migrations WHERE VERSION = 'version_id'"
ActiveRecord::Base.connection.exec_query(sql)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3464 次 |
| 最近记录: |