이전에 db로 작업 한 적이 없으므로이 모든 것이 저에게 새로운 것입니다. 저는 RubyMine, Rails 3에서 일하고 있습니다.레일 3 마이그레이션 오류 : SQLite3 :: SQLException : "myTable"테이블이 이미 있습니다.
- 먼저, 마이그레이션은 무엇이며, 그 이유는 무엇입니까? 데이터베이스 브라우저를 통해 db를 편집 할 수 있습니까? 마이그레이션이 데이터 등을 보유합니까?
- 둘째, 프로젝트를 상속했으며 마이그레이션 폴더에 20120128022506_users.rb와 같은 이름의 파일이 3 개 있습니다. 난 그냥 마이그레이션 작업을 실행하면, 내가 얻을 :
: 예상대로def up create_table :projects do |table| table.integer :partner_id table.string :name end add_index :projects, :name end
"20120531031320_projects.rb"
라는 파일에 보면
SQLite3::SQLException: table "projects" already exists: CREATE TABLE "projects" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "partner_id" integer, "name" varchar(255))
그리고 사실는, 프로젝트 테이블을 만들려고
이 프로젝트는 Sinatra에서 이식되었으며 db와 마이그레이션 파일이 동기화되지 않았을 수도 있습니다 (올바른 용어 인 경우). 어쨌든, 이러한 마이그레이션 파일과 db간에 동기화 할 수있는 방법이 있습니까? 그러면 새 마이그레이션 파일을 사용하여 db에 새 테이블을 추가 할 수 있습니까? - http://guides.rubyonrails.org/
def up
if (!ActiveRecord::Base.connection.tables.include?("projects"))
create_table :projects do |table|
table.integer :partner_id
table.string :name
end
end
end
이 시작하기에 좋은 장소가 아마 : – house9
또한 레일스는 생성 된 schema_migrations 테이블에서 어떤 마이그레이션이 실행되었는지 추적합니다. – house9
감사합니다 house9, 저에게 잡았습니다! – dt1000