ruby-on-rails - Ruby:将 sqlite 命令转换为 postgres 命令

标签 ruby-on-rails ruby postgresql sqlite heroku

我正在部署到 Heroku,我需要将一些 Ruby 示例代码从 SQLite 转换为 Postgres。

这是原始的 SQLite 代码:

#SQLite table
DB = Sequel.connect('sqlite://gcm-test.db')
DB.create_table? :Device do
  primary_key :reg_id
  String :user_id
  String :reg_token
  String :os, :default => 'android'
end
Device = DB[:Device]  # create the dataset

我已经翻译了建表部分,但我不知道最后一行是什么意思。

Device = DB[:Device]  # create the dataset

到目前为止,这是翻译后的 postgres 代码的样子:

DB = PG.connect(ENV['DATABASE_URL'])
DB.exec "DROP TABLE IF EXISTS Device"
DB.exec "CREATE TABLE Device(reg_id INTEGER PRIMARY KEY, user_id text, reg_token text, os text DEFAULT 'android')"
Device = DB[:Device]  # create the dataset

当我尝试在 Heroku 上本地运行它时,出现此错误:

in `<main>': undefined method `[]' for #<PG::Connection:0x007fe7ca7a6610> (NoMethodError)

有人知道如何处理这条线吗?

最佳答案

只需要将其更改为

DB = Sequel.connect(ENV['DATABASE_URL']),

正如乔所说。

关于ruby-on-rails - Ruby:将 sqlite 命令转换为 postgres 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41399691/

相关文章:

mysql - 将保存/更新调用 rails 转换为 sql

ruby-on-rails - rails "undefined method for ActiveRecord_Associations_CollectionProxy"

mysql - 当我用完一个 bigint 生成的 key 时会发生什么?如何处理?

每组多个组的SQL总和

r - 如何在 Greenplum/Postgres 中使用 PL/R 反序列化模型对象?

mysql - ruby、rubygems 和 rails——让一切都在正确的地方!

ruby-on-rails - 如果更新时存在属性,Rails 如何仅调用自定义验证方法

ruby-on-rails - RSpec + 回形针 : identify: no decode delegate for this image format

ruby - 如何使用 RSpec 测试获取目录中的文件列表?

ruby - Rails 3.1.0 使用 haml 的问题 - 缺少模板错误