Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Web2py – Bermigrasi dari SQLite ke MySQL

Baru-baru ini saya perlu mengonversi aplikasi CRM berbasis web2py yang dihosting di server Apache dengan backend SQLite ke MySQL. Di bawah ini adalah langkah-langkah yang berhasil untuk saya. Saya membuat contoh aplikasi untuk digunakan jika Anda ingin mengikuti, Anda dapat mengunduh semua file di sini.

Harap dicatat:Saya menggunakan web2py versi 2.4.7 di lingkungan Unix. Sebelum memulai, pastikan Anda telah menginstal SQLite di sistem Anda. Anda dapat menginstal ini dengan pip, pip install sqlite , atau Anda dapat mengambil file biner di http://sqlite.org/download.html. Anda juga perlu menginstal MySQL. Jika Anda membutuhkan bantuan, ikuti tutorialnya di sini.

Basis data saat ini memiliki semua tabel web2py default serta pengguna tabel dengan bidang id , tanggal_mulai , dan tanggal_akhir :

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

Kode ini mengikuti sintaks DAL web2py. Ada 30.000 baris data dalam tabel.


Pembersihan data

Unduh database SQLite terbaru aplikasi Anda. Secara default, ini adalah file bernama storage.sqlite di bawah folder “/web2py/applications//databases/”. Untuk mengunduh, buat dump basis data, dengan menjalankan perintah berikut di dalam terminal:

$ sqlite3 storage.sqlite .dump > output_before.sql

Menggunakan editor teks, edit output_before.sql berkas:

  • Hapus semua baris yang dimulai dengan PRAGMA , BEGIN TRANSACTION , CREATE TABLE dan COMMIT .
  • Hapus semua baris yang berkaitan dengan sqlite_sequence tabel (yaitu, DELETE FROM sqlite_sequence; ).
  • Untuk semua INSERT INTO "<table_name>" VALUES(...) pernyataan, ganti tanda kutip ganda (" " ) sebelum dan sesudah <table_name> dengan backticks (` ` ) - mis. INSERT INTO `table_name` VALUES(...) .

Terakhir, simpan file sebagai output_after.sql di desktop Anda.



Pengaturan MySQL

Buat database MySQL di server jauh. Catat nama database, username dan password. Anda juga dapat mengatur database Anda secara lokal untuk pengujian, yang akan saya gunakan untuk tutorial ini:

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

Konfigurasikan aplikasi Anda untuk menggunakan MySQL. Luncurkan admin web2py Anda. Sunting db.py :

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

Simpan file.

Izinkan web2py untuk menginisialisasi database MySQL:

  • Cadangkan konten /web2py/applications/<your_application>/databases/ map. Kemudian hapus isi folder tersebut.
  • Kembali ke admin web2py. Klik tombol “administrasi database” untuk membuat tabel di database MySQL lokal Anda.

Jalankan database MySQL Anda di terminal untuk memastikan tabel kosong telah ditambahkan ke database:



Tambahkan data

Arahkan ke tempat Anda menyimpan output.sql (harus desktop Anda), lalu jalankan perintah berikut untuk menambahkan data ke MySQL:

$ mysql -u root migration < output_after.sql

Ini akan memakan waktu beberapa menit untuk sepenuhnya dijalankan.

Dalam admin web2py, periksa database dan aplikasi Anda untuk memastikan data baru dapat diakses.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PERIOD_DIFF() Contoh – MySQL

  2. MySQL:Bagaimana cara saya bergabung dengan tabel yang sama beberapa kali?

  3. Cara Memberikan Semua Keistimewaan pada Database di MySQL

  4. Cara Menambahkan Batasan NOT NULL di MySQL

  5. Dapatkan nama kolom tabel di MySQL?