ruby-on-rails - 转储 postgres DB rails
问题描述
有很多关于如何转储数据库以便将其移至生产环境的信息,但似乎都没有提到数据库的用户名应该是什么。
这是来自 Heroku,但我找不到用户名...
PGPASSWORD=mypassword pg_dump -Fc --no-acl --no-owner -h localhost -U myuser mydb mydb.dump
这是我在 Github 上找到的一个 rake 任务
desc "Dumps the database to db/APP_NAME.dump"
task :dump => :environment do
cmd = nil
with_config do |app, host, db, user|
cmd = "pg_dump --host #{host} --username #{user} --verbose --clean --no-owner --no-acl --format=c #{db} > #{Rails.root}/db/#{app}.dump"
end
puts cmd
exec cmd
end
def with_config
yield Rails.application.class.parent_name.underscore,
ActiveRecord::Base.connection_config[:host],
ActiveRecord::Base.connection_config[:database],
ActiveRecord::Base.connection_config[:username]
end
它生成以下命令并出现以下错误。
pg_dump --host --username --verbose --clean --no-owner --no-acl --format=c kelp_development > /home/yiti/code/ymagoon/kelp/db/kelp.dump
pg_dump: [archiver (db)] connection to database "kelp_development" failed: could not translate host name "--username" to address: Name or service not known
解决方案
根据共享的描述和代码,您似乎没有指定主机、数据库和用户名。
下面提到的命令表明它没有从 rake 任务中定义的 with_config 方法中获取配置。
pg_dump --host --username --verbose --clean --no-owner --no-acl --format=c kelp_development > /home/yiti/code/ymagoon/kelp/db/kelp.dump
您可以使用下面提到的代码创建配置对象
config = Rails::Configuration.new
host = config.database_configuration[RAILS_ENV]["host"]
database = config.database_configuration[RAILS_ENV]["database"]
从 DATABASE_URL scheme://username:password@host:port/database 获取数据库凭据
现在您可以从下面提到的命令直接将数据转储到 postgres 数据库:
pg_dump -h host_name -U user_name --verbose --clean --no-owner --no-acl --format=c db_name > path_to_dump_file.dump
推荐阅读
- r - 需要将图例更改为十进制值
- ssh - 比较两种 ssh 转发的安全性
- string - 各种 Go 字符串连接方法在时间和空间复杂度方面有何比较?
- javascript - 使用 nodeJs 构建网关
- linux - linux命令删除或替换空格和特殊字符
- excel - VBA工作表函数索引匹配抛出类型不匹配错误
- android - 从 Xamarin Forms 4.8x 升级到 5.0x 会引发 Android 异常
- python - 在 While 循环 Python 中使用异步运行协程
- xamarin.forms - 点击通知时未触发 Xamarin.forms NotificationTapped 事件
- android - 如何在 Android 10+ 上监控 ARM GPU 的 GPU 使用率和 GPU 频率