mysql - 导轨数据库 :migrate doesn't work after altering the database manually

标签 mysql ruby database ruby-on-rails-5 rails-migrations

我对 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 中删除表,您的应用程序不会知道这一点。

MIgration Guides

关于mysql - 导轨数据库 :migrate doesn't work after altering the database manually,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39866979/

相关文章:

database - 对在数据库设计中使用 "display_order"字段的批评是什么?

php - codeigniter 上的 SQL 查询限制和偏移错误

mysql - 从表中获取数据以及从另一个表中连接的数据

css - Rails - 在 application.rb 中添加了 4 个自定义 Assets 路径而无需重新启动

javascript - Ruby:接收并打印 JSON 对象

c# - 使用 Entity Framework 6 在数据库中查找等效的嵌套对象

database - 将 CouchDB 配置为非管理员只读

mysql - 如何根据mysql中的分数添加排名

mysql select for simple join for rows having certain cells with duplicate values

Ruby -> 获取目录中的所有文件