在Heroku生产网站上清除Rails应用程序数据库

27

我是ROR和Heroku的新手,需要一点帮助。我创建了一个应用并进行了部署;但是,我想清除与之相关的数据库。也就是说,我想清除到目前为止创建的任何用户(及其附加数据)。

我基本上创建了几个虚假帐户来测试生产站点上的数据库是否有效,但现在我想清除这些内容,并启用一个全新的数据库。

这样做可行吗,而不必完全删除数据库?

真诚感谢您的帮助。非常感谢您抽出时间!

13个回答

55

你可以使用heroku pg:reset DATABASE命令来重置整个数据库。该命令将简单地删除并重新创建数据库。

然后,您需要使用heroku rake db:migrate来创建表格。

或者,您可以在本地使用rake db:reset命令,然后运行heroku db:push来更新生产数据库。


5
在雪松堆栈上,您也可以通过heroku run直接运行任何命令,因此:heroku run rake db:reset - asymmetric
这个答案已经过时了,适用于2013年。请查看下面的我的答案。 - CodeBiker

10
heroku pg:reset DATABASE --confirm {app-name}

heroku run rake db:migrate

heroku run rake db:seed

1
谢谢,这对我很有帮助,让我能够轻松地重置和重新创建我的数据库。 - Praveen George

9

通过终端登录Heroku,然后运行以下命令之一:

heroku rake db:reset
//or:    
heroku run rake db:reset

第一个是旧的,第二个是最新的。

7

做到这一点的2013方法是:

在控制台中输入heroku pg:reset DATABASE,然后在提示时输入应用程序名称。这将删除整个数据库 -- 表、行、列、所有数据,全部都删除。

然后,输入heroku run rake db:migrate。这将创建相同的表、行和列,但没有任何对象数据。


4

当前的方式是:

heroku pg:reset DATABASE_URL --confirm <APP_NAME>

2

重置数据库

按照以下方式运行

heroku pg:reset SHARED_DATABASE --confirm APP_NAME

这对我非常有效


2
当前 Cedar 栈的共享数据库正确语法为:
heroku pg:reset SHARED_DATABASE my-database-name-1294

请将URL中的"my-database-name-1294"替换为您实际使用的名称。

然后会要求您输入以下内容:

----> Resetting SHARED_DATABASE (DATABASE_URL)

 !    WARNING: Potentially Destructive Action
 !    This command will affect the app: my-database-name-1294
 !    To proceed, type "my-database-name-1294" or re-run this command with --confirm my-database-name-1294

只需将“ my-database-name-1294 ”重新输入到那里,它就会重置所有内容。


1

是的,你可以使用 SQL 方法来完成它,或者只需从命令行中使用 Rails Console 并调用 @users.destroy_all 方法即可。这篇文章解释了如何从 Heroku 使用控制台。


1
我很好奇...我现在在我的Mac上(本地主机)。以下假设是否正确:如果我在本地主机/暂存数据库上运行rake db:reset,会清除所有数据而不清除表和模式吗?如果是这样,那么我只需使用heroku db:push命令将该数据库推送到Heroku,这样可以吗? - slovak_100
如果您想完全删除并重新创建数据库,则可以执行以下操作: rake db:drop rake db:migrate - Turnkey

1
如果您有两个服务器——生产和暂存,并且想将生产数据库添加到暂存中。
heroku pg:reset DATABASE --remote staging
heroku pgbackups:restore DATABASE URL_OF_DATABASE --remote staging
heroku run rake db:migrate --remote staging
URL_TO_DATABASE - 用于存储数据库转储的 AWS 或 Dropbox URL。
这对我有用!

0

数据库也可以从 Web 仪表板中重置:

找到您的数据库并点击链接: enter image description here

在数据库页面上,单击“设置” enter image description here

然后单击“重置数据库”并按照提示进行确认。 enter image description here

当然,您需要使用 rake 迁移来恢复您的表。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接