kib*_*ekr 2 database postgresql schema ruby-on-rails ruby-on-rails-3
我最近在尝试更改架构中的列名时遇到了错误.它在本地工作,但是当我db:在Heroku上迁移时,它给了我一个错误,说该列不存在.
在过去,我一直很难统一我的生产模式和开发模式.这可能是因为我在本地创建了迁移,在本地运行db:migrate,然后由于某种原因在本地删除了迁移,然后推送到heroku,导致迁移在本地运行但不在prod中运行.(我现在知道这是一件非常糟糕的事情,我应该在self.down中输入相反的函数并执行rake db:rollback)
我想知道的是,我如何检查我的本地和prod架构是否不同,是否有一种方法可以改变我的本地表/列以适应制作'?因为它似乎只与生产的东西一起工作,我知道我的本地环境中有无用的表/列.
您可以在Heroku上运行bash控制台:
heroku run bash -a app_name
Run Code Online (Sandbox Code Playgroud)
从那里,您可以使用标准bash命令导航文件系统schema.rb,并将文件与您的本地文件进行比较schema.rb.
为了统一模式,我建议阅读Rails Rails指南中有关Schema转储的详细信息.您可以将模式文件复制到本地环境,然后运行`rake db:reset',这将删除开发数据库并从新模式重新创建它.请务必阅读Schema Dump详细信息,因为根据数据库的需要,有多种方法可以转储模式.显然,在开始之前备份你需要的任何东西.
从那时起,您应该回到干净的平板,您可以再次正确地开始迁移,以更新您的本地应用程序和Heroku.
| 归档时间: |
|
| 查看次数: |
1180 次 |
| 最近记录: |