2010-02-25 7 views
1

SQLite3에서 만든 정보를 내 웹 사이트의 MySQL 데이터베이스로 마이그레이션해야합니다. 웹 사이트는 호스팅 된 서버에 있습니다. MySQL 데이터베이스에 원격으로 액세스 할 수 있습니다. 나는 처음에는 쉽게 될 것이라고 생각했지만 좋은 정보는 찾지 못했다. 그리고 내가 읽은 모든 것은 SQLite3 파일을 덤프하고 지저분한 스크립트를 사용하여 MySQL 덤프 파일로 변환 한 다음 가져올 필요가 있음을 암시하는 것처럼 보인다. MySQL로.SQLite3 데이터베이스 테이블을 덤프 파일없이 Python을 사용하여 MySQL로 마이그레이션

(예 : Quick easy way to migrate SQLite3 to MySQL?)

내 질문 : 읽어와 MySQL에 스크립트에서 바로 그것을 가져 더 잘되지 않습니다. 필자는 파이썬에서 MySQL을 전혀 사용하지 않았지만, 읽지 못하게하기위한 단계가 적은 것이 더 낫다고 직관적으로 보일 것입니다. 나는 또한 MySQL 덤프 파일이 작동하는 방식을 이해하지 않아도되므로 약간의 시간을 절약하려고 노력하고있다.

스크립트 (가능한 경우 Python)가 있다면 도구 나 링크를 통해 도움이 될 것입니다. 그러나 우선 내 관심사는 어떻게해야할까요? 현실적으로 모든 것을 검사 할 수는 없습니다 (그렇지 않으면 복사 및 붙여 넣기 만 할 것입니다). 그래서 나는 올바른 방향으로 가고 싶습니다.

장고를 사용하고 있습니다. 아마도 장고에 대한 구체적인 방법이있을 수 있습니다. 그러나 장고를 찾을 수 없었습니다.

답변

2

"지저분한"스크립트가 필요한 이유는 일반적으로 해결하기가 어렵다는 것입니다.

운이 좋은 경우 데이터베이스간에 스키마 비 호환성이 너무 많지는 않습니다.

이들은

db_dump.py
dbpickle.py
What is your favorite solution for managing database migrations in django?

+0

"지저분한"스크립트가 필요한 이유는 일반적으로 해결하기가 어렵다는 것입니다. "... 그 이유만으로 나는 그 모든 것을 건너 뛰고 싶습니다. 내가 sqlite3을 열고, 테이블을 반복하고, mysql 테이블 행을 행별로 업데이트하면, 그것은 지저분 해 보이지는 않지만 아무도 그렇게하지 않는 것처럼 보인다. 내 질문은 왜? – Vernon

+0

@Vernon, 이제까지 당신에게 가장 쉬운 일을하십시오. 많은 사람들이 db 덤프를 통해 마이그레이션하는 것으로 보입니다. 이전보다 누구보다 나은 방법을 찾을 수 있습니다. 작동하지 않는 경우 항상 돌아가서 덤프를 시도 할 수 있습니다. –

+0

@Vernon : 스키마 일치를 보장해야하기 때문일 수 있습니다. 느슨하게 형식이 지정된 데이터를 가져 와서 더 강력한 형식의 스키마에 삽입하면 몇 가지 문제가 발생할 가능성이 높으며 각 응용 프로그램은 서로 다른 전략을 처리 할 수 ​​있습니다. – Kylotan

2

당신이 장고 - 관리자의 dumpdata 및 loaddata를 사용하여 시도 적이 도와 드릴까요?

테이블과 부하를 재현, MySQL의 DB에

manage.py dumpdata 

변화 DB를 sqllite3 덤프

manage.py loaddata mydata.json 

기본적으로 dumpdata은 JSON을 덤프하지만 당신은 너무 XML로 포맷을 설정할 수 있습니다.

다른 방법으로 파이썬 db api, sqlalchemy 또는 django ORM을 사용하여 전체 sqlite3 db를 읽고 MySQL DB로 덤프 할 수 있습니다.

+0

나는 dumpdata가 json 형식으로 표현한 사실을 간과했다. 그것은 확실히 그것을 훨씬 쉽게 만듭니다. 각 테이블을 파일로로드하지 않아도됩니다. 전체 데이터베이스를 업로드하지 않고 특정 파일 만 업로드하려고합니다. sqlite3 데이터베이스를 읽고 업로드하는 스크립트를 작성하지 않는 이유는 무엇입니까? 그것은 mysql에있다. sqlite3 데이터베이스가 내 컴퓨터에 있고 mysql이 호스트 서버에 있기 때문에 모든 것을 한꺼번에 처리 할 수 ​​있다면 훨씬 쉬울 것입니다. 그렇지 않다면, 내가 제안한 방법으로 하나씩 테이블을 처리 할 것입니다. – Vernon

+0

@vermon 예, 스크립트를 작성할 수 있습니다. 쉽고로드 할 데이터가 일부만 있습니다. –

관련 문제