Chuyển đổi dữ liệu từ MySQL sang PostgreSQL có thể được thực hiện qua nhiều bước. Dưới đây là hướng dẫn chi tiết để thực hiện quá trình này.
Trước tiên, hãy đảm bảo rằng bạn đã cài đặt cả MySQL và PostgreSQL trên hệ thống của mình.
Sử dụng công cụ mysqldump
để xuất dữ liệu từ MySQL. Bạn có thể xuất cả cấu trúc và dữ liệu:
mysqldump -u username -p --no-create-info --skip-triggers database_name > data.sql mysqldump -u username -p --no-data database_name > schema.sql
--no-create-info
: Chỉ xuất dữ liệu mà không xuất cấu trúc bảng.--no-data
: Chỉ xuất cấu trúc mà không xuất dữ liệu.MySQL và PostgreSQL có một số sự khác biệt trong cú pháp SQL, vì vậy bạn cần chuyển đổi cú pháp SQL của tệp schema.sql
:
AUTO_INCREMENT
-> SERIAL
DATETIME
-> TIMESTAMP
TINYINT(1)
-> BOOLEAN
CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) NOT NULL, created_at DATETIME DEFAULT CURRENT_TIMESTAMP );
Sẽ trở thành:
CREATE TABLE users ( id SERIAL PRIMARY KEY, name VARCHAR(255) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
Sử dụng psql
để nhập dữ liệu từ tệp data.sql
vào PostgreSQL:
psql -U username -d database_name -f data.sql
Nếu bạn đã chuyển đổi cấu trúc trong schema.sql
, hãy chạy tệp đó trước:
psql -U username -d database_name -f schema.sql
Sau khi hoàn thành việc chuyển đổi, hãy kiểm tra dữ liệu trong PostgreSQL để đảm bảo rằng mọi thứ đã được chuyển đổi chính xác:
SELECT * FROM users;
Nếu bạn muốn tự động hóa quá trình chuyển đổi, có thể sử dụng một số công cụ như:
pgloader mysql://username:password@localhost/database_name postgresql://username:password@localhost/database_name
Quá trình chuyển đổi dữ liệu từ MySQL sang PostgreSQL có thể phức tạp do sự khác biệt về cú pháp và kiểu dữ liệu. Tuy nhiên, bằng cách chuẩn bị kỹ lưỡng và sử dụng các công cụ tự động, bạn có thể thực hiện việc này một cách hiệu quả.