Rails 5 how to clear or delete production postgres database

rails db reset without seed
rails db drop rails db create
rails drop all tables
rails create production database
database is being accessed by other users in rails
reset migration rails
rails drop development database
heroku reset database

I am trying to delete a production database so I can start fresh. When I upgraded to rails 5 from rails 4, it is now protecting the production database from accidental deletion. It shows the following error message when I run rake db:reset.

/app# rake db:reset
  ActiveRecord::SchemaMigration Load (1.8ms)  SELECT "schema_migrations".* FROM "schema_migrations"
   (1.6ms)  SELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1  [["key", :environment]]
  ActiveRecord::SchemaMigration Load (0.2ms)  SELECT "schema_migrations".* FROM "schema_migrations"
   (0.3ms)  SELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1  [["key", :environment]]
  ActiveRecord::SchemaMigration Load (0.3ms)  SELECT "schema_migrations".* FROM "schema_migrations"
   (0.2ms)  SELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1  [["key", :environment]]
rake aborted!
ActiveRecord::ProtectedEnvironmentError: You are attempting to run a destructive action against your 'production' database.
If you are sure you want to continue, run the same command with the environment variable:
DISABLE_DATABASE_ENVIRONMENT_CHECK=1
/usr/local/bundle/gems/activerecord-5.0.0.1/lib/active_record/tasks/database_tasks.rb:51:in `check_protected_environments!'
/usr/local/bundle/gems/activerecord-5.0.0.1/lib/active_record/railties/databases.rake:11:in `block (2 levels) in <top (required)>'
/usr/local/bundle/gems/rake-11.3.0/exe/rake:27:in `<top (required)>'
Tasks: TOP => db:reset => db:drop => db:check_protected_environments
(See full trace by running task with --trace)

It says that my adding the environment variable DISABLE_DATABASE_ENVIRONMENT_CHECK=1 to the command should work but it does not. I run it and it does nothing.

<606723-x9dh4:/app# DISABLE_DATABASE_ENVIRONMENT_CHECK=1 rake db:reset       
  ActiveRecord::SchemaMigration Load (1.6ms)  SELECT "schema_migrations".* FROM "schema_migrations"

Anyone know what I am doing wrong? Appreciate the help!

UPDATE:

My server is deployed using kubernetes. I am guessing that I am not able to reset the database because the server is running.

Try this it worked for me:

RAILS_ENV=production rake db:drop DISABLE_DATABASE_ENVIRONMENT_CHECK=1 

in a single line.

ruby, I am trying to delete a production database so I can start fresh. When I upgraded to rails 5 from rails 4, it is now protecting the production  To delete a database: Specify the name of the database that you want to delete after the DROP DATABASE clause. Use IF EXISTS to prevent an error from removing a non-existent database. PostgreSQL will issue a notice instead. The DROP DATABASE statement deletes catalog entries and data directory permanently.

It also happens when you dump production database into local. If you want to delete it on local machine, you will need to set bin/rails db:environment:set RAILS_ENV=development, and after rake db:drop

🧑 Rails 5 how to clean or delete postgres database, Try it, it worked for me: RAILS_ENV=production rake db:drop DISABLE_DATABASE_ENVIRONMENT_CHECK=1. in one line. Drop the database in the production environment appending the production arguments. rails db:drop RAILS_ENV=production DISABLE_DATABASE_ENVIRONMENT_CHECK=1 Create the database in the production environment appending the production arguments.

From Heroku's documentation on Running Rake commands:

The db:reset task is not supported. Heroku apps do not have permission to drop and create databases. Use the heroku pg:reset command instead.

So instead of trying to have rails or rake db:reset, try this:

heroku pg:reset

Rails Snippet: Force drop a PostgreSQL database, Word to the wise, make sure you DON'T do this on your production server! I've not done Rails Snippet: Force drop a PostgreSQL database So while developing a Rails new site I discovered the need to drop (delete) my database and recreate it. Google Authentication Strategy for Rails 5 Application. # Do not set this db to the same as development or production. test: <<: *default database: stelle_test # As with config/secrets.yml, you never want to store sensitive information, # like your database password, in your source code.

It is not working but you should run commands like this

 bundle exec rake RAILS_ENV=production db:drop DISABLE_DATABASE_ENVIRONMENT_CHECK=1

and when you drop the table you have to create it back.So you will get error if you don't have rights to createdb.Here your asnwer Postgres permission denied to create database on rake db:create:all

when you type psql you exit from there by typing \q.

Like i said this is not the answer but i hope this will save your time while you are searching. Beacuse i am right there right now. GL&HF

Ruby-on-rails: deleting all data from a table - dxw, During development, you might find yourself needing to delete everything from a specific database table to refresh your data. You could drop  Dropping the database is done by running the following command: DROP DATABASE “your_database”; If you refresh your Postgres DB tree you should now see that your databases have been dropped.

Well, even though this is an old post, but for future reference, you can do

    rake db:migrate VERSION=0

And then

    rake db:migrate

Getting Started on Heroku with Rails 5.x, Creating, configuring, deploying and scaling Rails 5.x applications on Heroku, using Install Postgres locally now if it is not already on your system. Do not set this db to the same as development or production. test: <<: *default If you are upgrading an existing application, you can remove this gem  The database.yml file is used by Rails to connect to the appropriate database for the current Rails environment. It uses YAML, a data serialization standard. There are a few databases listed here for different environments; development, test, and production. By default Rails will expect a different database for each environment. This is handy

The Rails Command Line, How to generate models, controllers, database migrations, and unit tests. How to start a assets:clean[keep] Remove old compiled assets. assets:clobber Min threads: 5, max threads: 5. * Environment: rails server -e production -p 4000 It supports MySQL (including MariaDB), PostgreSQL, and SQLite3. You can also​  First, specify the table from which you want to delete data in the DELETE FROM clause. Second, specify which rows to delete by using the condition in the WHERE clause. The WHERE clause is optional. However, if you omit it, the DELETE statement will delete all rows in the table.

Configuring Rails Applications, Configuring Rails ApplicationsThis guide covers the configuration and files (​such as config/environments/production.rb ) allow you to specify the various settings config.after_initialize do ActionView::Base.sanitized_allowed_tags.​delete 'div' end development: adapter: postgresql database: blog_development pool: 5. Click on “Add Rule.” For “Type,” choose “PostgreSQL,” and for “Source” type in the ID of the security group that you are adding this rule to. It should be right above the “Inbound” tab and should look like sg-*. Click “Save.” Setting up the production database configuration. Now, in your Rails directory, open config

How to Remove Old Database Migrations in Ruby on Rails, How to Remove Old Database Migrations in Ruby on Rails it a little bit, because we don't won't to lose any data while deploying new migration to staging or/and production environment. Jacek Hiszpański • 5 years ago. Next you migrate your cat_list_production database. The appengine gem provides the Rake task appengine:exec to run a command against the most recent deployed version of your app in the production App Engine flexible environment. Migrate the Cloud SQL for PostgreSQL cat_list_production database in production. bundle exec rake appengine:exec

Comments
  • can you try using rails instead of rake like RAILS_ENV=production DISABLE_DATABASE_ENVIRONMENT_CHECK=1 bin/rails db:reset
  • No luck, just does the same thing.
  • Just noticed the title doesn't include Heroku, but this is what I was looking for!
  • yep, that's the way to go if you won't disconnect your db and can rollback your migrations