Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Heroku上测试PostgreSQL PostGIS的选项?_Heroku - Fatal编程技术网

在Heroku上测试PostgreSQL PostGIS的选项?

在Heroku上测试PostgreSQL PostGIS的选项?,heroku,Heroku,我正在创建一个大量使用PostgreSQL的PostGIS扩展的应用程序。我发现: 这对我来说意味着我只能在Ronin和DBs上获得PostGIS。这对我的生产来说是完全好的,我的计划是无论如何在我的生产系统中使用那个级别的DB 然而,我在Heroku上也有一个阶段和开发环境,这意味着我也需要为这些环境提供一个支持PostGIS的数据库,因为我不能在生产数据库中运行测试。我需要一个选项来支持这些环境,因此我想知道以下几点: 除了通过插件进程外,您是否可以连接到Heroku上的DB? 我尝试为测

我正在创建一个大量使用PostgreSQL的PostGIS扩展的应用程序。我发现:

这对我来说意味着我只能在Ronin和DBs上获得PostGIS。这对我的生产来说是完全好的,我的计划是无论如何在我的生产系统中使用那个级别的DB

然而,我在Heroku上也有一个阶段和开发环境,这意味着我也需要为这些环境提供一个支持PostGIS的数据库,因为我不能在生产数据库中运行测试。我需要一个选项来支持这些环境,因此我想知道以下几点:

除了通过插件进程外,您是否可以连接到Heroku上的DB?

我尝试为测试数据库手动添加一个配置变量,但它不仅仅通过pg:promote神奇地工作——还有其他一些东西可以控制Heroku如何考虑有效的数据库


任何其他人们能想到的选择都将不胜感激。我知道SpacialDB有一个封闭的beta版可能会工作(已经在研究了),但还有什么其他人能想到的吗?我只是不愿意为测试/阶段的专用DBs每月额外支付400美元。

也许你错过了Heroku上最近发布的受限pg 9.1开发数据库


还有新的起重机计划,可能也适用于您。

我们在Heroku上使用PostGIS

1) 您可以从“任何地方”连接到非共享heroku应用程序。一旦运行了更大的数据库,就可以使用连接字符串连接任何应用程序或postgres命令行。在数据库上几乎没有什么不能做的。您不能用更小的共享数据库来实现这一点

2) 我们为登台环境提供了专用数据库。如果您不这样做,那么您就不能在与prod相同的条件下进行真正的测试,您将无法发现问题。我们使用Rails,所以在投入生产之前,我们需要一个“相同”的db来运行迁移

3) 我们在本地(和Jenkins上)运行postgres以再次运行测试。

您可以根据需要创建(提供)和删除生产层数据库。入门级生产层数据库的成本为每小时0.07美元(或每天1.67美元);保持数据库的全天候配置将花费您每月50美元。看

提供数据库 1。这可以在一行或两行中完成

-bash> heroku addons:add heroku-postgresql:crane --remote staging
Adding heroku-postgresql:crane on cool-app-0007... done, v36 ($50/mo)
Attached as HEROKU_POSTGRESQL_GOLD_URL
The database should be available in 3-5 minutes.
 ! The database will be empty. If upgrading, you can transfer
 ! data from another database with pgbackups:restore.
Use `heroku pg:wait` to track status..
Use `heroku addons:docs heroku-postgresql` to view documentation.
尽管配置过程需要3-5分钟,但命令提示符将很快返回。根据消息,您可以跟踪设置状态:

-bash> heroku pg:wait --remote staging
Waiting for database HEROKU_POSTGRESQL_GOLD_URL... available
请注意,您可以一次性执行上述两个命令(
&&
确保第二个命令仅在第一个命令成功返回后执行):

2.一旦完成(“可用”),使用上述名称设置
数据库URL
(即
HEROKU\u POSTGRESQL\u GOLD\u URL
)。为了避免复制/粘贴,我一次完成:

-bash> heroku config:set DATABASE_URL=`heroku config:get HEROKU_POSTGRESQL_GOLD_URL --remote staging` --remote staging
Setting config vars and restarting cool-app-0007... done, v37 
DATABASE_URL: postgres://i28asd172a3k2:bd3k2s05sls1a03b8c4efi0b33a@ec2-12-345-678-90.compute-1.amazonaws.com:5562/eexf3mwha92jk6
3.迁移或恢复

第一次执行上述操作时,需要设置数据库(例如,通过运行迁移:
heroku运行rake db:migrate--remote staging
,然后可能是
heroku restart--remote staging

随后您将从备份中恢复,从而能够继续您停止的操作:

-bash> heroku pgbackups:restore HEROKU_POSTGRESQL_GOLD_URL b001 --confirm cool-app-0007

HEROKU_POSTGRESQL_GOLD_URL (DATABASE_URL)  <---restore---  b001
                                                             HEROKU_POSTGRESQL_ROSE_URL (DATABASE_URL)
                                                             2014/01/12 03:19.29
                                                             16.3KB

Retrieving... done
Restoring... done
删除数据库 有关详细信息,请参阅


我没有错过任何一个,如果你点击我的链接,你会发现它们都不提供PostGIS扩展。不知道为什么…还在通过Heroku支持部门解决这个问题。你找到解决方案了吗?
-bash> heroku pgbackups:restore HEROKU_POSTGRESQL_GOLD_URL b001 --confirm cool-app-0007

HEROKU_POSTGRESQL_GOLD_URL (DATABASE_URL)  <---restore---  b001
                                                             HEROKU_POSTGRESQL_ROSE_URL (DATABASE_URL)
                                                             2014/01/12 03:19.29
                                                             16.3KB

Retrieving... done
Restoring... done
-bash> heroku pgbackups:capture HEROKU_POSTGRESQL_ROSE_URL

HEROKU_POSTGRESQL_ROSE_URL (DATABASE_URL)  ----backup--->  b001

Capturing... done
Storing... done
-bash> heroku addons:remove HEROKU_POSTGRESQL_ROSE_URL
Removing HEROKU_POSTGRESQL_ROSE_URL on cool-app-0007... done, v35 ($50/mo)