을 처리하는 방법에 UTF-8 자 sqlite2 을 sqlite3 마이그레이션
-
01-07-2019 - |
문제
고 쉬운 접근법:
sqlite2mydb.db.덤프|sqlite3mydb-new.db
나는 이 오류가 발생할 수 있습니다.
SQL 오류가 근처 라인 84802:이러한 열:Ð
에서는 스크립트가 이:
에 삽입 vehiculo 값(127548,'21K0065217',Ñ,'PA007808',65217,279,1989,3,468,'1998-07-30 00:00:00.000000','14/697/98-07',2,",1);
내 생각에는 는'N'지 않고 따옴표 문제.
어떤 생각이 있으십니까?
PD:나는 윈도우에서 지금과 같은 명령을 사용하는 온라인할 수 있도록 자동화된(이 과정에서 수행됩니다 매일 서버에서).
해결책
단순히 열 v2 데이터베이스 sqlite3 바이너리 CLI,다음을 저장합니다.데이터베이스 파일이 투명하게 마이그레이션을 v3.
그것은 작동하지 않습니다.
$sqlite3 db2
SQLite version 3.6.16
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .tables
Error: file is encrypted or is not a database
sqlite> .q
파일이 변경되지 않은(명 sqlite3 읽을 수 없다).내가 생각하는 원래의 문제는 버그에서 sqlite2.
다른 팁
단순히 열 v2 데이터베이스 sqlite3 바이너리 CLI,다음을 저장합니다.데이터베이스 파일이 투명하게 마이그레이션을 v3.
$ sqlite3 v2database.db
sqlite> .quit
$
참고:당신이해야 할 수도 있습 삽입/삭제 행하기 전에 종료를 업데이트.
아무도 답...끝에서 저 끝까지 수정 나의 원래 스크립트(하나는 sqlite2 데이터베이스에서 첫 번째 장소)데이터베이스를 만들에서 직접 sqlite3.
나는 생각에 큰 문자열 처리하는 스크립트(크기 때문에 이내의 데이터베이스는 800mb 및 200 메가바이트)를 할 수 있는 일을 하지만 생성하는 데이터베이스에 직접었습니다.
나는 그것을 시도 하지 않고 윈도우 개입:
*를 호출하여 sqlite2 에 오래 된다.db 에 보낼 경우에도 덤프를 직접 파일
*한 다음 호출 sqlite3 에 새로운.db 로드하는 덤프에서 직접 파일입니다.
단지의 경우 윈도우되는 문자와 명령줄에서.
같은 결과입니다.