通过 powerdesigner 设计的数据库,然后直接导入到数据库 但 rails 里运行的时候出现错误: ``` Migrations are pending; run 'rake db:migrate RAILS_ENV=development' to resolve this issue.
提示我需要迁移 因为数据库表已经存在,即使迁移的话,也有错误,无法访问 这个怎么解决?
手动删掉
#1 楼 @doitian 删掉是指什么?把数据库删了?
把 db/migrate 下的文件删除跑 db:migrate 应该就可以了
他就是检查一下你的这个目录下有没有文件还没跑(在 schema_migrations 表里有没有这个文件的记录)自己看一下这个表的内容就明白了
因为你数据库已经有这张表了,如果你要创建的是一样的表,也没有数据需要保留,就手到在数据库里删除掉,然后跑下 migration。如果想保留,也可以先把 db/migrate 下相应的创建表的行注释掉,跑完后再注释回来。如果还是觉得麻烦,而且你确定当前数据库不用跑任何 migration 就是最新的状态,也可以直接手动在数据库的 schema_migrations 里添加记录。这张表里记录的是所有已经执行过的 migration 的版本,也就是文件名最开始的那一串时间戳。
schema_migrations
#3 楼 @ZombieCoder 恩,就是这么解决的,删除 db/migrate的文件,就可以了!
这个问题提出来很久了 但是还是在这里回答一下,以后看到的人可以作为参考
我是用 rake db:reset 解决问题的。如果遇到可以试试。