2008-08-10 42 views
19

Tôi hiện có cơ sở dữ liệu MySQL tương đối nhỏ (4 hoặc 5 bảng, 5000 hàng) mà tôi muốn chuyển đổi sang cơ sở dữ liệu sqlite. Khi tôi có khả năng phải làm điều này nhiều hơn một lần, tôi sẽ biết ơn nếu có ai có thể giới thiệu bất kỳ công cụ hữu ích nào, hoặc ít nhất là bất kỳ phương pháp dễ nhân rộng nào.Cách tốt nhất để chuyển đổi cơ sở dữ liệu mysql thành cơ sở dữ liệu sqlite là gì?

(Tôi có quyền truy cập admin hoàn thiện cơ sở dữ liệu/máy liên quan.)

Trả lời

1

Nếu nó chỉ là một vài bảng bạn có thể có lẽ kịch bản này trong langauge kịch bản yêu thích của bạn và nó có tất cả được thực hiện bởi thời gian nó sẽ mất để đọc tất cả các câu trả lời hoặc theo dõi một công cụ phù hợp. Tôi sẽ bất kỳ cách nào. :)

+0

r có thư viện sqlite và mysql đẹp. bạn có thể kéo và đẩy từ trong cùng một khuôn khổ. – EngrStudent

2

Chừng nào một tập tin dump MySQL không vượt quá ngôn ngữ SQLite truy vấn, bạn sẽ có thể di chuyển khá dễ dàng:

[email protected]~$ mysqldump old-database > old-database-dump.sql 
[email protected]~$ sqlite3 -init old-database-dump.sql new-database 

Tôi đã không cố gắng này bản thân mình.

UPDATE:

Hình như bạn sẽ cần phải làm một vài chỉnh sửa của MySQL đổ. Tôi muốn sử dụng sed hoặc Google for it.

Chỉ cú pháp nhận xét, auto_increment & LOẠI = tuyên bố và thoát các ký tự khác nhau.

4

Tôi đã phải làm những việc tương tự một vài lần. Cách tiếp cận dễ nhất đối với tôi là viết một kịch bản lấy từ một nguồn dữ liệu và tạo ra một đầu ra cho nguồn dữ liệu mới. Chỉ cần làm một truy vấn SELECT * cho mỗi bảng trong cơ sở dữ liệu hiện tại của bạn, và sau đó đổ tất cả các hàng vào một truy vấn INSERT INTO cho cơ sở dữ liệu mới của bạn. Bạn có thể đưa nó vào một tệp hoặc đặt nó thẳng vào trong giao diện cơ sở dữ liệu.

Nó không đẹp, nhưng trung thực, khá khó có vẻ là một mối quan tâm lớn cho những thứ như thế này. Kỹ thuật này rất nhanh để viết và nó hoạt động. Đó là những tiêu chí chính của tôi cho những thứ như thế này.

Bạn cũng có thể muốn xem this thread. Có vẻ như một vài người đã đặt cùng nhau về cơ bản những gì bạn cần. Mặc dù vậy, tôi không nhìn xa lắm, nên không có gì đảm bảo.

2

Dưới đây là danh sách các bộ chuyển đổi:


Một phương pháp thay thế mà có thể làm việc độc đáo nhưng hiếm khi được đề cập là: sử dụng một lớp ORM mà tóm tắt những khác biệt cơ sở dữ liệu cụ thể đi cho bạn. ví dụ. bạn sẽ có được những bằng PHP ( RedBean), Python (lớp ORM Django, Storm, SqlAlchemy), Ruby on Rails ( ActiveRecord), Cocoa ( CoreData)

tức là bạn có thể làm điều này:

  1. dữ liệu tải từ cơ sở dữ liệu nguồn bằng cách sử dụng lớp ORM.
  2. Lưu trữ dữ liệu trong bộ nhớ hoặc tuần tự hóa vào đĩa.
  3. Lưu trữ dữ liệu vào cơ sở dữ liệu nguồn bằng cách sử dụng lớp ORM.
Các vấn đề liên quan