我将我的本地文件上传到AWS,我做了rake db:migrate RAILS_ENV = production, 但它显示错误......它正在我当地的环境中工作,但它不能用于生产。
ActiveRecord::SchemaMigration Load (0.2ms) SELECT `schema_migrations`.* FROM `schema_migrations`
Migrating to DeleteTagCategories (20170422082951)
== 20170422082951 DeleteTagCategories: migrating ==============================
-- drop_table(:tag_categories)
(0.2ms) DROP TABLE `tag_categories`
rake aborted!
StandardError: An error has occurred, all later migrations canceled:
Mysql2::Error: Unknown table 'tag_categories': DROP TABLE `tag_categories`
解决此错误的最佳方法是什么?
答案 0 :(得分:1)
您应该知道db:schema:load将删除现有数据,因此如果您想要保留任何非种子数据,您可能不想在生产中运行它。强>
由于表(tag_categories)在被推送到生产之前被删除了,我只是手动删除了表而没有使用迁移。
所以基本上只删除删除tag_categories的迁移,因为此表只存在于本地计算机上。
在进行Rails开发时,我通常只编辑现有的迁移并尽可能进行手动更改,而不是为每次更改创建新的迁移。一旦我推向生产(或者如果与团队一起工作,那就是源代码控制),那么我将不再对现有迁移进行其他更改。这减少了不必要的迁移次数,这可以快速增加。