我对 Rails 还很陌生,我对 Rails 迁移有一些疑问。
我使用的是 Rails 5、Windows 8。我生成了一个模型并编写了一些代码来创建一个包含列的表。然后我从我的开发数据库(MySQL)中删除了该表,并尝试再次执行 db:migrate 以查看它是否会创建迁移文件中写入的表和列。执行 db:migrate 后,它没有在终端中显示任何消息,也没有创建表和列。
根据我的观察,从 schema_migrations 中删除迁移文件的版本并再次运行 db:migrate,它可以工作并创建表和列。
想请教rails开发的高手,为什么会出现这种情况,以及当我开始开发大型数据库模型时应该怎么做。
我还想了解一些关于学习 Ruby on Rails 的优秀资源 Material 的建议。
谢谢!
最佳答案
这是因为 rake db:migrate
仅运行尚未运行的当前环境的迁移。因此,如果您运行 db:migrate,然后手动从 DB 中删除表,您的应用程序不会知道这一点。
关于mysql - 导轨数据库 :migrate doesn't work after altering the database manually,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39866979/