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?
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
.
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
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