web-dev-qa-db-fra.com

Détruire/Supprimer la base de données dans Rails

Est-il possible de supprimer complètement la base de données et tous les enregistrements de migration, etc. d'une application existante afin que je puisse refondre la base de données à partir de zéro?

17
fearofawhackplanet

En émettant rake -T, vous avez les tâches de base de données suivantes:

rake db:create          # Create the database from DATABASE_URL or config/database.yml for the current Rails.env (use db:create:all to create all dbs in the config)
rake db:drop            # Drops the database using DATABASE_URL or the current Rails.env (use db:drop:all to drop all databases)
rake db:fixtures:load   # Load fixtures into the current environment's database
rake db:migrate         # Migrate the database (options: VERSION=x, VERBOSE=false)
rake db:migrate:status  # Display status of migrations
rake db:rollback        # Rolls the schema back to the previous version (specify steps w/ STEP=n)
rake db:schema:dump     # Create a db/schema.rb file that can be portably used against any DB supported by AR
rake db:schema:load     # Load a schema.rb file into the database
rake db:seed            # Load the seed data from db/seeds.rb
rake db:setup           # Create the database, load the schema, and initialize with the seed data (use db:reset to also drop the db first)
rake db:structure:dump  # Dump the database structure to db/structure.sql
rake db:version         # Retrieves the current schema version number

Donc, émettez bundle exec rake db:drop:all et si vous voulez supprimer toutes les migrations, et en supposant que vous voulez supprimer uniquement les migrations, supprimez-les et écrivez-en de nouvelles. 

Si vous souhaitez également modifier vos modèles, utilisez Rails d model.

45
Paulo Fidalgo

Cela va se débarrasser de la base de données:

rake db:drop 

Et pour chaque migration que vous avez:

Rails d migration migration_name
4
stephenmurdoch

Oui, il est possible de supprimer la base de données et la migration.

rake db:drop
rake db:rollback
Rails d migration 'migration name'
rake db:create
rake db:migrate
rake db:seed
rake db:test:prepare
0
Dheer