Railsのデータベース上のRubyを削除するか、または再作成します

私はRailsのデータベースのデータにルビーの完全な発展を持っています。私はすべてのコンテンツを削除し、データベースを再構築したいです。私のようなものを使用して検討しています:

rake db:recreate

それは可能ですか?


#1階

私は今日、私はレールのアーキテクチャの変更の多くを行います。私は他の人がモデルを削除する必要がありますが、階層内の二つの追加モデルを追加するために必要な実現しました。モデルとコントローラは、多くの小さな変更が必要です。

私は2つの新モデルを追加し、以下の方法を使用して作成します。

rake db:migrate

私はその後、schema.rbファイルを編集しました。私は手動で少しだけを並べ替え、私はより明確にしましょう、必要に応じて外部キーフィールドを変更、古いモデルが不要になった削除されません。私は削除されたすべての移行をした後、次の方法で再ビルドを実行します。

rake db:reset

これは非常にうまく機能します。もちろん、すべてのデータを再ロードする必要があります。Railsのマイグレーションが削除されたことを認識し、ハイウォーターマークをリセットします。

-- assume_migrated_upto_version(20121026094813, ["/Users/sean/rails/f4/db/migrate"])

ハウス#2

あなたは、次のコマンドラインを使用することができます。

rake db:drop db:create db:migrate db:seed db:test:clone

ハウス#3

よるRailsのガイドラインを、あなたは、このいずれかを使用する必要がありschema.rb、それがからになるので、schema.rb移行ファイル1つのリロードによって代わりに一つでロードされます。

rake db:reset

#4階

手動でそれを行うことができます。

rake db:drop
rake db:create
rake db:migrate

それともrake db:reset、それは、上記の手順を実行しますが、また、実行されdb/seeds.rbたファイルを。

追加のニュアンスがありrake db:reset、直接schema.rbの代わりに、再びすべての移行ファイルを実行しているのは、ファイルをロードします。

すべての場合において、あなたのデータが吹き飛ばされます。


ハウス#5

特定のデータベースを削除するには、レールのコンソール上でこれを行うことができます。

$rails console
Loading development environment
1.9.3 > ActiveRecord::Migration.drop_table(:<table_name>)
1.9.3 > exit

その後、再びDBを移行

$bundle exec rake db:migrate 

ハウス#6

コマンドラインから実行します

rake db:migrate:reset

#7の構築

Railsの4日、すべての必要とされています

$ rake db:schema:load

これは、データベース上のすべてのコンテンツを削除し、個別にすべての移行を適用することなく、schema.rbファイルからパターンを再作成します。


#8の構築

単純に、次の手順を実行します。種子がまかれている場合は、データベース、データベースを削除し、データベースを再作成し、データの移行:

rake db:drop db:create db:migrate db:seed

以来rakeデフォルト設定がある開発するあなたはスペックテストで例外を見れば、あなたはする必要がありますテスト以下のように、DB環境を再作成します。

RAILS_ENV=test rake db:drop db:create db:migrate

ほとんどの場合、テスト・データベースをテストするので、無渡し中に播種されたdb:seedタスクの操作。そうしないと、データベースを準備する必要があります。

rake db:test:prepare

若しくは

RAILS_ENV=test rake db:seed

また、当社は、利用したい再作成するタスク、あなたに次のコードを追加することができRakefileに:

namespace :db do
   task :recreate => [ :drop, :create, :migrate ] do
      if ENV[ 'RAILS_ENV' ] !~ /test|cucumber/
         Rake::Task[ 'db:seed' ].invoke
      end
   end
end

次に問題:

rake db:recreate

ハウス#9

などで

rake db:drop db:create db:migrate db:seed

行のすべて。環境は、何度も何度も再読み込みされることはありませんので、これは高速です。

DB:ドロップは -データベースを破棄します。

デシベル:作成 -データベースを作成します(ホスト/ DB /パスワードのconfig / database.ymlをから取得されます)

DB:移行 -ディレクトリから(デシベル/移行/ .RB)*を実行し、既存の移行。

DB:SEED -ディレクトリから(デシベル/移動/ seed.rb) ランシード・データ。

私は通常のように:

rake db:reset

すべてを行うための時間。

乾杯!


ハウス#10

アップデート:Railsの5、次のコマンドを使用してこのコマンドにアクセスすることができます。

rails db:purge db:create db:migrate RAILS_ENV=test


開始からレールの最新バージョン4.2、あなたは今、実行することができます。

rake db:purge 

出典:提出

# desc "Empty the database from DATABASE_URL or config/database.yml for the current RAILS_ENV (use db:drop:all to drop all databases in the config). Without RAILS_ENV it defaults to purging the development and test databases."
  task :purge => [:load_config] do
    ActiveRecord::Tasks::DatabaseTasks.purge_current
  end

上述したように、それを併用してもよいです。

rake db:purge db:create db:migrate RAILS_ENV=test

ハウス#11

4.2レールの上に、すべてのデータを削除してもデータベースを保持

$ bin/rake db:purge && bin/rake db:schema:load

https://github.com/rails/rails/blob/4-2-stable/activerecord/CHANGELOG.md


ハウス#12

開発中に、あなたは常に再作成するデータベースにしたいので、あなたはlibに/タスクフォルダにrakeタスクを定義することができます。

  namespace :db do
      task :all => [:environment, :drop, :create, :migrate] do
   end 
end

最後に、あなたが実行されます

rake db:all

それはあなたのデータベースを再構築します


ハウス#13

私は、このコマンドを実行するための最良の方法だと思います。

**rake db:reset** it does db:drop, db:setup
 rake db:setup does db:create, db:schema:load, db:seed

ハウス#14

あなたのニーズに応じて、使用することができます......

rake db:create

...からconfig/database.ymlスクラッチビルドにconfig/database.yml、あるいは......

rake db:schema:load

...からschema.rbデータベースを構築するために最初からファイル。


ハウス#15

私はライナーターミナルで次のように使用します。

$ rake db:drop && rake db:create && rake db:migrate && rake db:schema:dump && rake db:test:prepare

私はそれはシェルのエイリアスと名前として使用しますremigrate

今までは、あなたは簡単に「リンク」タスクをレールできます。

$ rake db:drop db:create db:migrate db:schema:dump db:test:prepare # db:test:prepare no longer available since Rails 4.1.0.rc1+

ハウス#16

私はこれを行うには、2つの方法があることを知っています:

これはあなたのデータベースをリセットし、すべてのリロードを現在のスキーマを使用します。

rake db:reset db:migrate

これは、あなたの現在のモードを移行し、それを作成し、データベースを破壊します。

rake db:drop db:create db:migrate

すべてのデータは、両方のケースでは失われます。


ハウス#17

あなたは使用することができますdb:reset-デシベルを実行するために:ドロップとDB:セットアップまたはdb:migrate:reset-実行デシベル:ドロップ、デシベル:作成し、DB:移行を。

それは使用にあなたが望むものに依存してschema.rbが存在します


ハウス#18

あなただけ実行することができます

rake db:setup

あなたはシードファイルを作成するために、特定のデータを使用する場合は、新しいデータベースを作成し、データベースを削除し、種子からデータベースを作成します。


ハウス#19

3オプション、同じ結果:

1.すべての手順を実行します。

  $ rake db:drop           # deletes the database for the current env
  $ rake db:create         # creates the database for the current env
  $ rake db:schema:load    # loads the schema already generated from schema.rb / erases data
  $ rake db:seed           # seed with initial data

2.リセット:

  $ rake db:reset          # drop / schema:load / seed

3.移行:リセット:

  $ rake db:migrate:reset  # drop / create / migrate
  $ rake db:seed

注意:

  • スキーマを使用する場合:実行速度が速く、同じ結果より、すべての移行をロードします。
  • すべてのデータが失われます。
  • あなたは、行で複数の熊手を実行することができます。
  • 図3は、ガイドレールに適用されます。
发布了0 篇原创文章 · 获赞 0 · 访问量 2228

おすすめ

転載: blog.csdn.net/p15097962069/article/details/103905411
おすすめ