복붙노트

[RUBY-ON-RAILS] 제거 또는 레일 데이터베이스에 루비를 다시

RUBY-ON-RAILS

제거 또는 레일 데이터베이스에 루비를 다시

나는 데이터의 전체 레일 데이터베이스에 dev에 루비가 있습니다. 나는 모든을 삭제하고 데이터베이스를 다시하고 싶다. 내가 좋아하는 뭔가를 사용하여 생각 해요 :

rake db:recreate

이게 가능해?

해결법

  1. ==============================

    1.나는이 두 가지 방법을 알고 :

    나는이 두 가지 방법을 알고 :

    이 데이터베이스를 재설정하고 모두와 함께 현재 스키마를 다시로드합니다 :

    rake db:reset db:migrate
    

    이것은 당신의 DB를 파괴하고 다음을 만든 다음 현재 스키마를 마이그레이션합니다 :

    rake db:drop db:create db:migrate
    

    모든 데이터는 두 시나리오에서 손실됩니다.

  2. ==============================

    2.레일 4 일, 필요한 모든입니다

    레일 4 일, 필요한 모든입니다

    $ rake db:schema:load
    

    그게 당신의 DB에 전체 내용을 삭제 한 모든 마이그레이션 하나를 적용하지 않고, 당신의 schema.rb 파일에서 스키마를 다시 것입니다.

  3. ==============================

    3.나는 터미널에서 다음 한 라이너를 사용합니다.

    나는 터미널에서 다음 한 라이너를 사용합니다.

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

    나는 쉘 별칭으로이 문제를 놓고 다시 이주로 이름을

    지금까지, 당신은 쉽게 "체인"작업을 레일 수 있습니다 :

    $ 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+
    
  4. ==============================

    4.업데이트 :에 레일 (5),이 명령은이 명령을 통해 액세스 할 수 있습니다 :

    업데이트 :에 레일 (5),이 명령은이 명령을 통해 액세스 할 수 있습니다 :

    퍼지 DB : DB 레일 마이그레이션 RAILS_ENV = 테스트 : DB를 만들

    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
    
  5. ==============================

    5.당신이 원하는하는지에 따라 사용할 수 있습니다 ...

    당신이 원하는하는지에 따라 사용할 수 있습니다 ...

    DB를 긁어 : 생성

    ... 설정 / database.yml을에서 처음부터 데이터베이스를 구축하거나하는 ...

    DB를 긁어 : 스키마 : 부하

    ... 당신의 schema.rb 파일에서 처음부터 데이터베이스를 구축합니다.

  6. ==============================

    6.그냥 단계의 순서를 발행 : 데이터베이스를 삭제 한 다음, 다시 마이그레이션 데이터를 생성 - 다시, 당신은 씨앗이있는 경우, 데이터베이스를 뿌리 :

    그냥 단계의 순서를 발행 : 데이터베이스를 삭제 한 다음, 다시 마이그레이션 데이터를 생성 - 다시, 당신은 씨앗이있는 경우, 데이터베이스를 뿌리 :

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

    레이크의 기본 환경이 개발이기 때문에, 경우에 다음과 같이 테스트 환경에 대한 DB를 다시 작성해야합니다, 사양 테스트에서 예외를 참조하는 경우 :

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

    종자 작업 동작 전달 될 필요가 없습니다 : 데시벨이 때문에 대부분의 경우 테스트 데이터베이스는 테스트 과정에서 뿌린되고있다. 그렇지 않으면, 당신은 데이터베이스를 준비하여야한다 :

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

    7.명령 줄에서 다음을 실행합니다

    명령 줄에서 다음을 실행합니다

    rake db:migrate:reset
    
  8. ==============================

    8.같은 사용

    같은 사용

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

    한 줄의 모든. 이 환경이 다시 다시 다시로드되지 않기 때문에 빠릅니다.

    DB : 드롭 - 데이터베이스를 삭제합니다.

    DB : 생성 - 데이터베이스를 생성합니다 (호스트 / DB / 암호 설정 / database.yml을에서 이동합니다)

    DB : 마이그레이션은 - 기존 디렉토리에서 마이그레이션 (dB / 이동 / .rb) *를 실행합니다.

    DB : 씨앗 - 디렉토리에서 가능한 종자 데이터를 실행합니다 (dB / 이동 / seed.rb) ..

    나는 보통 선호한다 :

    rake db:reset
    

    한 번에 모든 작업을 수행합니다.

    건배!

  9. ==============================

    9.수동으로 수행 할 수 있습니다

    수동으로 수행 할 수 있습니다

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

    아니면 그냥 레이크 dB : 위의 단계를 실행되지만 또한 dB / seeds.rb 파일을 실행합니다 리셋.

    추가 된 뉘앙스는 레이크 dB이다 : 당신의 schema.rb 파일에서 직접 다시로드 다시 모든 마이그레이션 파일을 실행에 반대.

    당신의 데이터는 모든 경우에 날아됩니다.

  10. ==============================

    10.이 다음 명령 줄을 사용할 수 있습니다 :

    이 다음 명령 줄을 사용할 수 있습니다 :

    rake db:drop db:create db:migrate db:seed db:test:clone
    
  11. ==============================

    11.특정 데이터베이스를 제거하려면, 레일 콘솔에서이 작업을 수행 할 수 있습니다 :

    특정 데이터베이스를 제거하려면, 레일 콘솔에서이 작업을 수행 할 수 있습니다 :

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

    그리고 다시 DB 마이그레이션

    $bundle exec rake db:migrate 
    
  12. ==============================

    12.4.2 레일에서 모든 데이터를 제거하지만, 데이터베이스를 보존

    4.2 레일에서 모든 데이터를 제거하지만, 데이터베이스를 보존

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

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

  13. ==============================

    13.당신이 사용할 수있는 DB : 리셋 - 실행 DB에 대한 : 드롭 및 DB : 설치 또는 DB : 마이그레이션 : 리셋 - dB 실행 : 드롭, DB : 생성 및 DB를 : 마이그레이션 할 수 있습니다.

    당신이 사용할 수있는 DB : 리셋 - 실행 DB에 대한 : 드롭 및 DB : 설치 또는 DB : 마이그레이션 : 리셋 - dB 실행 : 드롭, DB : 생성 및 DB를 : 마이그레이션 할 수 있습니다.

    당신에 의존하는 존재의 schema.rb를 사용하려면

  14. ==============================

    14.대신 마이그레이션을 다시로드의 schema.rb에서로드 때문에 레일 가이드에 따르면,이 라이너는 하나 하나의 파일을 사용해야합니다 :

    대신 마이그레이션을 다시로드의 schema.rb에서로드 때문에 레일 가이드에 따르면,이 라이너는 하나 하나의 파일을 사용해야합니다 :

    rake db:reset
    
  15. ==============================

    15.개발에, 당신은 항상 데이터베이스를 다시 할 것이기 때문에, 당신이 당신의 lib에 갈퀴 작업을 정의 할 수 있습니다 / 작업처럼 폴더.

    개발에, 당신은 항상 데이터베이스를 다시 할 것이기 때문에, 당신이 당신의 lib에 갈퀴 작업을 정의 할 수 있습니다 / 작업처럼 폴더.

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

    단자에 당신이 실행됩니다

    rake db:all
    

    그것은 당신의 데이터베이스를 다시 작성합니다

  16. ==============================

    16.나는이 명령을 실행하는 가장 좋은 방법을 생각한다 :

    나는이 명령을 실행하는 가장 좋은 방법을 생각한다 :

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

    17.간단히 실행할 수 있습니다

    간단히 실행할 수 있습니다

    DB를 긁어 : 설치를

    그것은 데이터베이스를 삭제하면 일부 데이터와 시드 파일을 만든 경우 씨앗에서 새 데이터베이스 및 채우기 DB를 생성합니다.

  18. ==============================

    18.3 개 옵션 같은 결과 :

    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
    

    리셋합니다 :

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

    3. 마이그레이션 : 리셋 :

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

    노트:

  19. ==============================

    19.오늘은 내 레일 스키마에 꽤 많은 변화를했습니다. 내가 계층 구조에 추가로 두 모델과 몇몇 다른 사람이 삭제 될 필요가 깨달았다. 모델과 컨트롤러에 필요한 많은 작은 변화가 있었다.

    오늘은 내 레일 스키마에 꽤 많은 변화를했습니다. 내가 계층 구조에 추가로 두 모델과 몇몇 다른 사람이 삭제 될 필요가 깨달았다. 모델과 컨트롤러에 필요한 많은 작은 변화가 있었다.

    내가 사용하는 두 개의 새로운 모델을 추가하고이를 생성 :

    rake db:migrate
    

    그럼 난 schema.rb 파일을 편집. 나는 수동으로 필요에 따라 외부 키 필드를 변경, 더 이상 필요하지 않은 기존 모델을 제거하고 바로 나에게 그것을 명확하게 그것을 조금 순서가. 나는 모든 마이그레이션을 삭제 한 다음를 통해 빌드를 다시 실행 :

    rake db:reset
    

    그것은 완벽했다. 모든 데이터는 물론, 다시로드해야합니다. 삭제 및 최고 수위 표시를 재설정했던 마이그레이션을 실현 난간 :

    -- assume_migrated_upto_version(20121026094813, ["/Users/sean/rails/f4/db/migrate"])
    
  20. from https://stackoverflow.com/questions/4116067/purge-or-recreate-a-ruby-on-rails-database by cc-by-sa and MIT license