Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Web2py - Di chuyển từ SQLite sang MySQL

Gần đây, tôi cần chuyển đổi ứng dụng CRM dựa trên web2py được lưu trữ trên máy chủ Apache có phần phụ trợ SQLite sang MySQL. Dưới đây là các bước phù hợp với tôi. Tôi đã tạo một ứng dụng mẫu để làm việc cùng nếu bạn muốn làm theo, bạn có thể tải xuống tất cả các tệp tại đây.

Xin lưu ý:Tôi đang sử dụng phiên bản web2py 2.4.7 trên môi trường Unix. Trước khi bắt đầu, hãy đảm bảo rằng bạn đã cài đặt SQLite trên hệ thống của mình. Bạn có thể cài đặt cái này bằng pip, pip install sqlite hoặc bạn có thể lấy các tệp nhị phân tại http://sqlite.org/download.html. Bạn cũng cần cài đặt MySQL. Nếu bạn cần hỗ trợ, hãy làm theo hướng dẫn tại đây.

Cơ sở dữ liệu hiện tại có tất cả các bảng web2py mặc định cũng như một người dùng bảng có các trường id , start_date end_date :

db.define_table(
    'users',
    Field('start_date','string'), 
    Field('end_date','string')
)

Mã này tuân theo cú pháp web2py DAL. Có 30.000 hàng dữ liệu trong bảng.


Làm sạch dữ liệu

Tải xuống cơ sở dữ liệu SQLite mới nhất của ứng dụng của bạn. Theo mặc định, đó là tệp có tên storage.sqlite trong thư mục “/ web2py / Applications / / databases /”. Để tải xuống, hãy tạo một kết xuất cơ sở dữ liệu, bằng cách chạy lệnh sau trong terminal:

$ sqlite3 storage.sqlite .dump > output_before.sql

Sử dụng trình chỉnh sửa văn bản, chỉnh sửa output_before.sql tệp:

  • Xóa tất cả các dòng bắt đầu bằng PRAGMA , BEGIN TRANSACTION , CREATE TABLECOMMIT .
  • Xóa tất cả các dòng liên quan đến sqlite_sequence table (tức là DELETE FROM sqlite_sequence; ).
  • Đối với tất cả INSERT INTO "<table_name>" VALUES(...) câu lệnh, thay thế dấu ngoặc kép (" " ) trước và sau <table_name> có dấu gạch ngược (` ` ) - ví dụ. INSERT INTO `table_name` VALUES(...) .

Cuối cùng, lưu tệp dưới dạng output_ after.sql trên máy tính để bàn của bạn.



Thiết lập MySQL

Tạo cơ sở dữ liệu MySQL trên máy chủ từ xa. Ghi lại tên cơ sở dữ liệu, tên người dùng và mật khẩu. Bạn cũng có thể thiết lập cơ sở dữ liệu cục bộ để thử nghiệm, tôi sẽ sử dụng cơ sở dữ liệu này cho hướng dẫn này:

$ mysql.server start
$ mysql -u root -p
Enter password:
mysql> create database migration;
Query OK, 1 row affected (0.03 sec)
mysql> exit;

Định cấu hình ứng dụng của bạn để sử dụng MySQL. Khởi chạy quản trị web2py của bạn. Chỉnh sửa db.py :

db = DAL('mysql://<mysql_user>:<mysql_password>@localhost/<mysql_database>')

Lưu tệp.

Cho phép web2py khởi tạo cơ sở dữ liệu MySQL:

  • Sao lưu nội dung của /web2py/applications/<your_application>/databases/ thư mục. Sau đó, xóa nội dung của thư mục.
  • Quay lại quản trị viên web2py. Nhấp vào nút "quản trị cơ sở dữ liệu" để tạo các bảng trong cơ sở dữ liệu MySQL cục bộ của bạn.

Kích hoạt cơ sở dữ liệu MySQL của bạn trong thiết bị đầu cuối để kiểm tra để đảm bảo rằng các bảng trống đã được thêm vào cơ sở dữ liệu:



Thêm dữ liệu

Điều hướng đến nơi bạn đã lưu output.sql (phải là máy tính để bàn của bạn), sau đó chạy lệnh sau để thêm dữ liệu vào MySQL:

$ mysql -u root migration < output_after.sql

Quá trình này sẽ mất vài phút để thực thi hoàn toàn.

Trong quản trị viên web2py, hãy kiểm tra cơ sở dữ liệu và ứng dụng của bạn để đảm bảo rằng dữ liệu mới có thể truy cập được.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sử dụng tự động hóa để tăng tốc độ kiểm tra phát hành trên Galera Cluster With ClusterControl

  2. Một cái nhìn chuyên sâu về Lập chỉ mục cơ sở dữ liệu

  3. sql tham gia dưới dạng biểu đồ venn

  4. Hiệu suất MySQL:Xác định các truy vấn dài

  5. Cách khởi động, khởi động lại, kiểm tra trạng thái và dừng máy chủ MySQL