Ruby:将sqlite命令转换为postgres命令

时间:2016-12-30 16:48:23

标签: 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)

有谁知道如何处理这条线?

1 个答案:

答案 0 :(得分:0)

只需将其更改为

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