the*_*ope 10 ruby postgresql ruby-on-rails heroku
对于我通过Heroku托管的Ruby-on-Rails应用程序,我最近下载了一个备份,在本地恢复,然后从外部源向数据库添加数据.一切都很好.
使用heroku pg:push <localdbname> HEROKU_DATABASE_URL --app <appname>应用程序将更新的数据库推送到Heroku之后工作正常,我可以看到新添加的数据.
但是今天当我尝试登录Heroku上的应用程序时,我收到了错误消息.在我的日志文件中,我看到了这个错误:
ActionView::Template::Error (Unknown primary key for table ...
根据这篇SO帖子:当ID存在时,获取"表的未知主键"
一个用户能够通过多次重置数据库并将数据库推送到Heroku来解决此问题.但是,这对我没有用.我现在尝试重置并推送数据库至少4次.
一种可能性是我的本地postgres数据库使用的是版本9.6,而应用程序使用的是版本9.4.Heroku数据库是一个Hobby-Basic数据库.有从Heroku的关于如何升级的Postgres版本的文档,但它不是从他们的榜样完全清楚什么,我需要做的.我猜我基本上需要创建一个新数据库,将数据从旧数据复制到新数据然后销毁旧数据库.有没有人这样做过?这样做是否需要付费?并且已经升级了Postgres的版本远程修复此问题给其他人?
我以前遇到过类似的问题。我正在 RazorSQL 中的 Rails 之外创建一个 Postgres 数据库。我从外部来源导入数据,当我在本地运行它时,一切正常。在部署时我遇到了各种各样的问题。
我在 Rails 之外创建了表,因此没有创建迁移。我必须通过删除当前模型并生成一个新模型来重新创建表,该新模型是旧模型的副本,仅这次创建迁移,例如:
Rails 生成模型广告名称:字符串 描述:文本 价格:十进制 seller_id:整数 电子邮件:字符串 img_url:字符串
我需要从已经创建的数据库导入数据,在做任何事情之前,我实际上使用这个 gem https://github.com/rroblak/seed_dump创建了一个种子文件。当我再次创建模型时(记住删除模型并重新创建它),我所要做的就是运行rake db:seed并提取数据。
3.我要做的最后一件事是将关联插入模型中,例如在所有者模型中插入has many: customers以连接客户模型。
另一种情况是我在 RazorSQL 中运行查询并从查询生成一个新表并将其导入到 postgres 中。问题是它只是结果表,因此它没有主键。我必须在 postgres 中手动创建它,使用ALTER TABLE test1 ADD COLUMN id SERIAL PRIMARY KEY;This给了我一个自动递增的主键字段,我必须归功于这个帮助我的答案/sf/answers/206119301/。
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
368 次 |
| 最近记录: |