2012-02-23 86 views
2

我想在之前运行迁移将代码部署到我的Heroku实例。这是因为我编写的代码与我的数据库向后兼容,如果迁移需要很长时间,我不想先推送代码,请将应用程序置于maintence模式,直到迁移完成,然后将应用程序从无法运行的应用程序中取出维护模式。部署代码之前的Heroku运行迁移

如果这样的解决方案存在或者可以解决我的问题的东西,我想知道它。目前,我有一个包含所有代码(和迁移)的单独框,它们先接受推送,然后运行迁移,然后将代码部署到Heroku。

有没有更好的解决办法?

+0

为什么不简单地将你的迁移到Heroku,做你的db:迁移,然后推其余的? – 2012-02-23 02:34:32

+0

这可能会起作用。只是一点额外的git fu。 – maletor 2012-02-23 05:53:45

+0

在git中推入单个文件夹将需要rebase。 – maletor 2012-02-23 06:05:33

回答

1

不,我认为你现在的解决方案是唯一合乎逻辑的解决方案。你想实际做的是同时推送数据库和代码,但不是整个数据库,只有架构。我认为这只能像你一样完成,并且不需要以另一种方式来完成,因为这正是你想要的 - 有些东西可以处理你对Heroku的推动,运行数据库迁移并将所有内容推送到一起。

-2

你可以heroku db:pull在你的本地运行你的迁移,然后heroku db:push然后部署。

+0

我只需要推/拉模式而不是数据。 – maletor 2012-02-23 02:11:36

+1

这会将开发机器上的任何本地数据也推送到远程数据库,并且需要很长时间才能处理大型数据库。 – stringo0 2013-10-11 17:21:32