我在Digitalocean中关注此tutorial以设置我的rails生产服务器。但是我在cap production deploy:initial
我的设置包括DigitalCean中的Ubuntu 14.04,Capistrano,Nginx和Puma。
在教程中,他们没有提到有关编辑database.yml但我注意到我需要编辑它,因为默认的是sqlite3,而我的生产数据库是postgresql。
SSHKit::Runner::ExecuteError: Exception while executing on host 159.203.107.215: Exception while executing on host 159.203.107.215: rake exit status: 1
rake stdout: rake aborted!
ActiveRecord::NoDatabaseError: FATAL: database "db/production.postgresql" does not exist
的database.yml
default: &default
adapter: postgresql
pool: 5
timeout: 5000
development:
<<: *default
database: db/development.sqlite3
test:
<<: *default
database: db/test.sqlite3
production:
<<: *default
database: db/production.postgresql
答案 0 :(得分:2)
Sqlite和PostgreSQL需要非常不同的连接参数。 Sqlite只是获取磁盘数据库文件的路径。 PostgreSQL需要连接信息:主机名,数据库名称,用户名和密码。我会摆脱你的development:
pool: 5
timeout: 5000
database: db/development.sqlite3
test:
pool: 5
timeout: 5000
database: db/test.sqlite3
production:
adapter: postgresql
pool: 5
encoding: unicode
database: your_db_name_here
host: your_db_host_here
username: your_db_username_here
password: your_db_password_here
东西,并使每一个都明确。像这样:
username: <%= ENV.fetch('DATABASE_USERNAME', '') %>
password: <%= ENV.fetch('DATABASE_PASSWORD', '') %>
我还鼓励你不要在这个文件中存储实际的用户名和密码,而是通过环境获取它(dot_env gem可以帮助,也可以帮助其他几个)。像这样:
heres my script:
import zipfile
zFile = zipfile.ZipFile('lol.zip')
passFile = open('dictionary.txt')
for line in passFile.readlines():
password = x.strip()
try:
zFile.extractall(pwd=password)
print('[+] Password = ' + password)
exit(0)
except Exception:
pass