我是一个有用的助手,可以为您进行文本翻译。
我正在制作一款Web应用程序,计划使用Heroku.com进行部署,但我意识到他们唯一支持的数据库类型是PostgreSQL。到目前为止,我的应用程序(由Ruby gem Sinatra支持)通过Sequel gem的.Sqlite方法访问数据库。
以下是我使用Sequel访问.db文件的Ruby脚本:
然而,当我运行此代码时,我遇到了以下错误:
C:/Ruby193/lib/ruby/gems/1.9.1/gems/sequel-3.38.0/lib/sequel/adapters/postgres.rb:208:in 'initialize': PG::Error: FATAL: database "mydatabase.db" does not exist (Sequel::DatabaseConnectionError)
我已经尝试在Google、StackOverflow、Sequel文档和Heroku帮助文档中搜索任何帮助,但我没有找到解决这个问题的方法。
请问有谁知道我做错了什么?
我正在制作一款Web应用程序,计划使用Heroku.com进行部署,但我意识到他们唯一支持的数据库类型是PostgreSQL。到目前为止,我的应用程序(由Ruby gem Sinatra支持)通过Sequel gem的.Sqlite方法访问数据库。
以下是我使用Sequel访问.db文件的Ruby脚本:
DB = Sequel.sqlite('mydatabase.db')
DB.create_table :mytable do
primary_key :id
String :column_name
end
在了解Heroku只使用PostgreSQL之后,我安装了它。以下是通过postgres运行的脚本(我的用户名实际上是“postgress”,但我显然不会在这个问题中透露我的密码):
DB = Sequel.postgres('mydatabase.db',:user=>'postgres',:password=>'my_password_here',:host=>'localhost',:port=>5432,:max_connections=>10)
DB.create_table :mytable do
primary_key :id
String :column_name
end
然而,当我运行此代码时,我遇到了以下错误:
C:/Ruby193/lib/ruby/gems/1.9.1/gems/sequel-3.38.0/lib/sequel/adapters/postgres.rb:208:in 'initialize': PG::Error: FATAL: database "mydatabase.db" does not exist (Sequel::DatabaseConnectionError)
我已经尝试在Google、StackOverflow、Sequel文档和Heroku帮助文档中搜索任何帮助,但我没有找到解决这个问题的方法。
请问有谁知道我做错了什么?
postgres
数据库并运行一个CREATE DATABASE mydatabase WITH OWNER myappuser;
命令,然后断开连接并重新连接到数据库mydatabase
。你需要手动先创建用户myappuser
,命令为CREATE USER myappuser WITH CREATEDB PASSWORD 'xxxxx';
。另外,你可以首次连接时以postgres
用户身份连接,并让你的应用程序在创建数据库之前创建自己的用户帐户,在这种情况下,你可以删除CREATEDB
。 - Craig Ringer