최근 즐겨찾는 레일 팁!

2893 단어 rubyrailsproductivity
Rails는 생산성을 높이고 개발자에게 친숙한 것으로 알려진 강력한 프레임워크입니다. 생산성을 높이는 데 도움이 되는 많은 특성이 있습니다. 제가 아주 최근에 발견한 것과 그것 없이 작업을 수행하는 것이 얼마나 어려웠는지에 대해 이야기해 봅시다.

레일스 마이그레이션. 이 용어를 들어본 적이 없다면 간단히 말해서 마이그레이션은 데이터베이스의 스키마를 변경하는 데 도움이 됩니다. 익숙하지 않은 경우 자세한 내용here을 읽으십시오.

Rails는 마이그레이션 파일을 생성하기 위한 스캐폴딩을 제공합니다. 처음부터 마이그레이션 파일을 만들거나 기존 파일에서 복사할 필요가 없습니다. 이것은 꽤 표준입니다.

rails generate migration add_email_to_users email:string

다음 파일을 생성합니다

class AddEmailToUsers < ActiveRecord::Migration[5.0]
 def change
   add_column :users, :email, :string
 end
end

그 후, 당신은 그냥 실행

rake db:migrate

데이터베이스를 변경하는 데 1분도 걸리지 않습니다!

그러나 테이블을 만들고 작업을 시작한 이 시나리오를 고려하십시오.



이제 여러 가지 이유로 열 이름의 이름을 바꾸고 여기에 다른 열을 추가하려고 합니다.



마이그레이션이 이미 실행되었으므로 마이그레이션을 다시 실행하려면 다음 단계를 수행해야 합니다.
  • 파일 이름에서 마이그레이션 버전 가져오기20200827072540
  • schema_migrations 테이블
  • 에서 항목을 제거합니다.
  • 테이블을 드롭 transaction_dumps
  • 마이그레이션rake db:migrate을 다시 실행합니다
  • .

    이러한 일련의 작업은 개발에서 놀고 싶거나 최종 스키마가 확실하지 않은 경우 정말 실망스럽습니다.

    더 좋은 방법은 다음과 같습니다.

    rake db:rollback #rolls back the latest migration change
    rake db:migrate #runs all the pending migrations again
    

    깔끔한 권리.

    잠깐만. 이 게시물은 이것에 관한 것이 아닙니다.

    여러 마이그레이션 파일을 롤백하고 다시 실행하려는 경우 두통이 다시 발생합니다. 마이그레이션 버전을 가져와야 합니다.

    rake db:migrate:down VERSION=20200827072540
    rake db:migrate:down VERSION=20200825121103
    rake db:migrate
    

    이를 수행하는 Rails 방법이 있으며 이것은 내가 마이그레이션을 가지고 놀 때 최근에 가장 좋아하는 이동 옵션입니다.

    rake db:migrate:redo
    

    그러면 최신 마이그레이션이 롤백되고 마이그레이션이 다시 실행됩니다. 다음은 우아한 부분입니다. 마지막n 마이그레이션 파일을 다시 실행하려는 경우 변수STEP로 피드할 수 있습니다.

    rake db:migrate:redo STEP=2
    



    쉽고 고통없이!

    항상 이것을 기억하세요. 너무 많은 시간이 걸리고 Rails가 작업하기에 재미없다고 느끼게 만드는 일을 하고 있다면 잘못된 방식으로 하고 있는 것일 수 있습니다 😉

    이 팁을 가져 주셔서 감사합니다.

    좋은 웹페이지 즐겨찾기