27

所以我是 ROR 和 Heroku 的新手,需要一点帮助。我创建了一个应用程序并部署了它;但是,我想清除与之关联的数据库。这意味着我想清除迄今为止创建的所有用户(及其附加数据)。

我基本上创建了几个虚假帐户来测试生产站点上的数据库是否有效,但现在我想清除它,并从一个新的数据库开始。

在不完全删除数据库的情况下这可能吗?

任何帮助将不胜感激。非常感谢您的宝贵时间!

4

13 回答 13

54

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

然后你必须使用heroku rake db:migrate来创建表。

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

于 2011-08-02T04:05:11.060 回答
10
heroku pg:reset DATABASE --confirm {app-name}

heroku run rake db:migrate

heroku run rake db:seed
于 2014-05-19T06:00:41.580 回答
9

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

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

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

于 2012-10-16T10:39:25.863 回答
7

2013 年的做法是:

输入heroku pg:reset DATABASE您的控制台,然后在出现提示时输入您的应用程序名称。这将删除整个数据库——表、行、列、所有数据,一切。

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

于 2013-06-14T16:23:24.043 回答
4

目前的方法是:

heroku pg:reset DATABASE_URL --confirm <APP_NAME>
于 2013-06-10T09:25:43.343 回答
2

重置数据库

像咆哮一样奔跑

heroku pg:reset SHARED_DATABASE --confirm APP_NAME

这对我很有效

于 2012-07-04T20:23:32.363 回答
2

当前 Cedar 堆栈对共享数据库的正确语法是:

heroku pg:reset SHARED_DATABASE my-database-name-1294

(将“my-database-name-1294”替换为 URL 中 .herokuapp.com 之前的内容)

然后它会问你这个:

----> 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”,它就会重置所有内容。

于 2012-06-28T20:03:23.593 回答
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。

这对我有用!

于 2014-03-25T15:34:15.140 回答
1

是的,您可以使用 SQL 方法执行此操作,也可以仅使用 Rails 控制台从命令行执行此操作并调用 @users.destroy_all 方法。本文介绍如何使用 Heroku 的控制台。

于 2011-08-02T03:27:30.937 回答
0

重置数据库

运行后它会要求您确认:

heroku pg:reset DATABASE_URL

在一行中全部重置

我不使用这种方法以防万一我犯了错误(我更喜欢上面的方法要求我确认)。替换myherokuapp为您的应用名称:

heroku pg:reset DATABASE_URL --confirm myherokuapp

重置和重新播种

像以前一样,要小心,因为这将完全删除您当前的数据库并从seeds.rb. 在以下内容中替换myherokuapp为您的应用程序的名称:

heroku pg:reset DATABASE_URL --confirm myherokuapp
heroku run rake db:migrate db:seed
于 2020-09-14T16:58:50.913 回答
0

在项目目录中使用此命令。添加 DISABLE_DATABASE_ENVIRONMENT_CHECK=1 允许生产环境像开发环境一样运行。

heroku run db:reset DISABLE_DATABASE_ENVIRONMENT_CHECK=1
于 2020-12-15T01:44:03.863 回答
0

Heroku 提供了一个可视化工具来执行此操作。转到资源> Heroku Postgres :: Database Drop database manualy

如果要迁移表,请使用rake db:migrate 启动种子rake db:seed

于 2018-03-25T10:05:07.910 回答
0

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

找到您的数据库并单击链接: 在此处输入图像描述

在数据库页面上单击“设置” 在此处输入图像描述

然后单击“重置数据库”并按照说明进行确认。 在此处输入图像描述

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

于 2019-05-30T21:43:18.063 回答