將 MySQL 的表結構和數據遷移到 SQLite,可以通過以下步驟實現。這個過程主要包括導出 MySQL 數據庫到 SQL 文件,然后將其導入到 SQLite 數據庫中。
步驟 1: 導出 MySQL 數據庫
首先,需要將 MySQL 數據庫導出為一個 SQL 文件。可以使用 mysqldump
工具:
mysqldump -u username -p database_name > database_dump.sql
username
替換為你的 MySQL 用戶名。database_name
替換為你要導出的數據庫名稱。database_dump.sql
是輸出的 SQL 文件名。
步驟 2: 修改 SQL 文件
MySQL 和 SQLite 在某些 SQL 語法上有差異,因此需要對導出的 SQL 文件進行一些修改:
-
刪除或修改不兼容的語句:
- 移除
ENGINE=InnoDB
,CHARSET=utf8
等 MySQL 特定的語句。 - 移除或替換 MySQL 特有的功能,如
AUTO_INCREMENT
、UNSIGNED
等。
- 移除
-
處理數據類型:
- 將
TINYINT(1)
改為BOOLEAN
或INTEGER
。 - 將
DATETIME
改為TEXT
或INTEGER
以存儲時間戳。
- 將
-
處理關鍵字:
- 確保沒有使用 SQLite 的保留字作為列名。
步驟 3: 導入到 SQLite
使用 sqlite3
工具將修改后的 SQL 文件導入到 SQLite 數據庫中:
sqlite3 new_database.db < modified_database_dump.sql
new_database.db
是要創建的 SQLite 數據庫文件名。modified_database_dump.sql
是經過修改后的 SQL 文件。
步驟 4: 驗證遷移結果
-
打開 SQLite 數據庫:
sqlite3 new_database.db
-
檢查表結構和數據:
.tables SELECT * FROM table_name LIMIT 10;
通過這些步驟,你可以將 MySQL 的表結構和數據遷移到 SQLite。請注意,復雜的數據庫結構或功能(如存儲過程、觸發器等)可能需要手動調整或重寫。