2009-10-31 2 views
1

간단한 모델 파일에서 데이터베이스 관계를 정의하고이 스키마 정의를 MySQL의 명시 적 형식으로 변환 할 수있는 스크립트를 찾고 있는데, PostgreSQL과 SQLite. 형식은 activerecord에서하는 정의와 유사 할 수 있습니다. 따라서 모든 것이 실패하면 관리 할 수 ​​있으면 AR과 함께 처리 할 것입니다. 그러나 문제에 대한 더 나은 해결책이있을 수 있습니다.MySQL, PostgreSQL, SQLite 용 SQL 스키마 변환 스크립트 ...

주요 문제는 자동 증가 필드가 있습니다. 나는 db 스키마에서 지나치게 복잡한 일을하지 않는다.

+0

답변 해 주셔서 감사합니다. 그렇게 할 수있는 권한을 부여하는 즉시 투표 해 드리겠습니다. – Debilski

답변

1

DBA는 데이터베이스 모델을 문서화 된 상태로 유지하고 다른 데이터베이스 엔진 구문으로 데이터베이스 스크립트를 생성 (유지) 할 수있는 데이터 모델링 도구를 사용하는 경우가 있습니다.

그런 저렴한 (비싼) 예제는 toad modeler입니다. 더 비싼 공구는 수천 달러에 들어갈 수 있습니다. ERWin이 떠오릅니다.

그러나 당신은 좀 더 간단한 방법을 찾고있는 것 같습니다. ActiveRecord는 괜찮 았을 것입니다. (그리고 Active Directory를 사용하면서 마이그레이션 할 수도 있습니다.) 장고의 모델은 또 다른 가능성이다.


편집 :

가 나는 액티브 레코드 사람이 아니에요 ...하지만 장고에 당신은 ./manage.py sqlall <appname> 할 것 - 즉, 인덱스에 대해 포함, 모든 생성 문을 밖으로 유출 것입니다.

귀하의 경우에는 <appname>이 필요한 유일한 앱일 것입니다. 두 개의 파일은 데이터베이스 구성을 정의하기 위해 settings.py과 데이터베이스 모델을 정의하기 위해 <appname>/models.py입니다.

Django tutorial은 시작하기에 좋은 장소입니다. 특별히 강조한 것은 creating models입니다.

희망이 있습니다.


편집 2 :

음 "자유"의 멘션은 "맥주로 ..."의 나 일을 만든 내가 "오픈 소스 데이터 모델링"을 봤 .... 이 찾았

http://www.sqlpower.ca/page/architect

나는 PostgreSQL의와 MySQL에 정/역 엔지니어을 주장하는 다른 것보다 그것에 대해 아무것도 몰라.

나는 장고의 ORM 레이어를 배우려고 시도하는 것보다 훨씬 더 나은 것을 생각해 볼 가치가 있다고 생각합니다. 특히 그것이 실제로 무료 인 경우에. (실제로, 나는 그것을 스스로 체크 할 것이다).

+0

그래, 글쎄, 그건 내 목적을 위해 무료가되어야한다, 그것은 단지 편의이다. 그러나 ActiveRecord 또는 Django에서 SQL 스키마를 실제로 어떻게 가져올 수 있습니까? Ruby 나 Python을 사용하여 시작하지 않고 생성 된 SQL 파일을 실행하고 싶습니다. – Debilski

+0

Django에서 어떻게해야하는지 내 대답을 편집했습니다. 액티브 레코드가 아니라 ... 미안해. – cethegeek

+0

그리고 다시 오픈 소스 데이터 모델링 도구 포인터를주는 편집 ... – cethegeek

1

SQL::Translator은 위대한 도구입니다. 아마도 프론트 엔드 코드를 작성하여 어떤 종류의 소스 파일 형식을 염두에두고 스키마 객체 (또는 적어도 하나의 YAML 표현)로 바꿔야하지만 일단 완료되면 sqlt가 나머지 작업을 수행 할 수 있습니다.

+0

꽤 좋은 소리지만, 내 구성표에있는 일부 제약 조건에서는 실패합니다. 그래서 저는 먼저 YAML 표현을 올바르게 이해해야한다고 생각합니다. – Debilski

0

일반 정보 : 지금 내가 사용하기로 선택한 방법은 Ruby 라이브러리 Datamapper이며 대부분의 다른 솔루션보다 설치가 쉽습니다.

관련 문제