如何将本地MySQL数据库部署到Heroku

时间:2013-03-03 21:43:11

标签: mysql heroku

我是使用Heroku的新手,我有一个Ruby / Sinatra应用程序,我计划在其中使用MySQL数据库作为主数据存储。

但是,我不想直接将结果写入Heroku上的数据库。相反,我想将结果写入本地数据库,然后能够轻松地将本地数据库部署/更新/复制到Heroku上的“生产”数据库。

我该怎么做?

感谢。

3 个答案:

答案 0 :(得分:61)

首先,Heroku本身使用postgres。如果你在当地使用它,生活会更容易。

您可以按照此处所述从heroku导入/导出postgres转储文件:https://devcenter.heroku.com/articles/heroku-postgres-import-export

如果你真的想使用mysql,你有两条路可以遵循。

1)在本地运行mysql,但在使用mysql2psql gem迁移到Heroku时转换为postgres,如下所述:https://devcenter.heroku.com/articles/heroku-mysql

2)使用像https://addons.heroku.com/cleardb

这样的mysql插件

然而,我的建议是使用postgres端到端,因为它被烘焙到Heroku中,你将使用Heroku的默认方式,而不是反对它们。

Postgres也非常好!

答案 1 :(得分:2)

我对Ruby&Sinatra一无所知,因此随时发表评论,让我知道如果是这样的话,我是多么的错误。但是,我认为在Heroku上提及JawsDB插件可能是适当的,因为此处的最高答案是2013年,可能有点过时。

这里是JawsDB插件上的信息链接: https://devcenter.heroku.com/articles/jawsdb

提供插件就像在CLI中运行以下命令一样简单:

heroku addons:create jawsdb

然后使用MySQL Workbench(或您使用的任何GUI)中的参数配置主机,用户名,密码和数据库。

答案 2 :(得分:0)

我写了一篇简短的文章

https://medium.com/@michaeltendossemwanga/import-mysql-database-to-heroku-with-one-command-import-db-sql-a932d720c82b

这是一个批处理脚本,可以加快过程 https://gist.github.com/MichaelTendoSsemwanga/f013963092e3abcce801834871d14b03

将此批处理脚本另存为import.bat

@echo off
heroku config | findstr CLEARDB > config.txt
set /p url=<config.txt

set "string=%url:?=" & set "x=%"
set "x=%string:/=" & set "dbname=%"
echo DB name:   %dbname%
echo DB name:   %dbname% >> config.txt

set "x=%string:@=" & set "substring=%"
set "host=%substring:/=" & set "x=%"
echo Host:      %host%
echo Host:      %host% >> config.txt

set "x=%string::=" & set "substring=%"
set "password=%substring:@=" & set "x=%"
echo Password:  %password%
echo Password:  %password% >> config.txt

set "x=%string:://=" & set "substring=%"
set "user=%substring::=" & set "x=%"
echo User:      %user%
echo User:      %user% >> config.txt

mysql -u %user% -p%password% -h %host% -D %dbname%  < %1

在heroku应用目录中,运行

import db.sql

Command line output