74

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

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

我该怎么做呢?

谢谢。

4

3 回答 3

79

首先 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 也非常好!

于 2013-03-03T21:56:23.530 回答
2

我对 Ruby 和 Sinatra 一无所知,所以请随时发表评论,让我知道如果是这样的话,我有多么错误。但是,我认为在 Heroku 上提及 JawsDB 插件可能是相关的,因为这里的最佳答案来自 2013 年,可能有点过时了。

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

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

heroku addons:create jawsdb

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

于 2020-03-13T21:41:29.203 回答
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

命令行输出

于 2020-01-03T14:07:57.690 回答