Mysql
 sql >> база данни >  >> RDS >> Mysql

Web2py – Мигриране от SQLite към MySQL

Наскоро имах нужда да конвертирам базирано на web2py CRM приложение, хоствано на Apache сървър със SQLite бекенд в MySQL. По-долу са стъпките, които работиха за мен. Създадох примерно приложение, с което да работя, ако искате да следвате, можете да изтеглите всички файлове тук.

Моля, обърнете внимание:използвам web2py версия 2.4.7 в Unix среда. Преди да започнете, уверете се, че имате инсталиран SQLite във вашата система. Можете да инсталирате това с pip, pip install sqlite , или можете да вземете двоичните файлове на http://sqlite.org/download.html. Имате нужда и от инсталиран MySQL. Ако имате нужда от помощ, следвайте уроците тук.

Текущата база данни има всички уеб2py таблици по подразбиране, както и потребители таблица с полетата id , начална_дата и крайна_дата :

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

Този код следва синтаксиса на web2py DAL. В таблицата има 30 000 реда данни.


Изчистване на данни

Изтеглете най-новата база данни SQLite на вашето приложение. По подразбиране това е файлът с име storage.sqlite в папката “/web2py/applications//databases/”. За да изтеглите, създайте дъмп на база данни, като изпълните следната команда в терминала:

$ sqlite3 storage.sqlite .dump > output_before.sql

С помощта на текстов редактор редактирайте output_before.sql файл:

  • Премахнете всички редове, които започват с PRAGMA , BEGIN TRANSACTION , CREATE TABLE и COMMIT .
  • Премахнете всички редове, отнасящи се до sqlite_sequence таблица (т.е. DELETE FROM sqlite_sequence; ).
  • За всички INSERT INTO "<table_name>" VALUES(...) изрази, заменете двойните кавички (" " ) преди и след <table_name> с обратни отметки (` ` ) - напр. INSERT INTO `table_name` VALUES(...) .

Накрая запазете файла като output_after.sql на вашия работен плот.



Настройка на MySQL

Създайте базата данни MySQL на отдалечения сървър. Обърнете внимание на името на базата данни, потребителското име и паролата. Можете също да настроите вашата база данни локално за тестване, което ще използвам за този урок:

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

Конфигурирайте приложението си да използва MySQL. Стартирайте вашия web2py администратор. Редактирайте db.py :

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

Запазете файла.

Позволете на web2py да инициализира MySQL базата данни:

  • Архивирайте съдържанието на /web2py/applications/<your_application>/databases/ папка. След това изтрийте съдържанието на папката.
  • Обратно към администратора на web2py. Щракнете върху бутона „администриране на база данни“, за да създадете таблиците във вашата локална MySQL база данни.

Стартирайте вашата MySQL база данни в терминала, за да проверите дали празните таблици са добавени към базата данни:



Добавяне на данни

Придвижете се до мястото, където сте запазили output.sql (трябва да е вашият работен плот), след това изпълнете следната команда, за да добавите данни към MySQL:

$ mysql -u root migration < output_after.sql

Това ще отнеме няколко минути, за да се изпълни напълно.

В администратора на web2py проверете вашата база данни и приложение, за да се уверите, че новите данни са достъпни.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Научете как да използвате няколко функции на MySQL и MariaDB – част 2

  2. MySQL актуализира обединена таблица

  3. Какъв е еквивалентът на LEN() в MySQL?

  4. Къде да промените стойността на low_case_table_names=2 в windows xampp

  5. Заявката за MySQL Insert не работи с клауза WHERE