Учебники

Phalcon — миграция базы данных

Перенос базы данных важен по следующим причинам:

  • Перенос базы данных помогает переносить данные между указанными типами хранилищ.

  • Миграция базы данных относится к контексту миграции веб-приложений с одной платформы на другую.

  • Этот процесс обычно выполняется для отслеживания устаревших данных.

Перенос базы данных помогает переносить данные между указанными типами хранилищ.

Миграция базы данных относится к контексту миграции веб-приложений с одной платформы на другую.

Этот процесс обычно выполняется для отслеживания устаревших данных.

Phalcon выполняет процесс миграции базы данных следующим образом —

Шаг 1 — Создайте проект с именем «dbProject» в каталоге xampp / wamp .

dbproject

Шаг 2 — Настройте проект с соответствующим подключением к базе данных.

<?php 

/*  
   * Modified: preppend directory path of current file, 
      because of this file own different ENV under between Apache and command line.  
   * NOTE: please remove this comment.  
*/

defined('BASE_PATH') || define('BASE_PATH', getenv('BASE_PATH') ?: realpath(dirname(__FILE__) . '/../..')); 
defined('APP_PATH') || define('APP_PATH', BASE_PATH . '/app');  
return new \Phalcon\Config(['database' => [
   'adapter' => 'Mysql', 
   'host' => 'localhost', 
   'username' => 'root', 
   'password' => '', 
   'dbname' => 'demodb', 
   'charset' => 'utf8', ],

'application' => [ 'appDir' => APP_PATH . '/', 
   'controllersDir' => APP_PATH . 
   '/controllers/', 'modelsDir' => APP_PATH . 
   '/models/', 'migrationsDir' => APP_PATH . 
   '/migrations/', 'viewsDir' => APP_PATH . 
   '/views/','pluginsDir' => APP_PATH . 
   '/plugins/', 'libraryDir' => APP_PATH . 
   '/library/', 'cacheDir' => BASE_PATH . 
   '/cache/', 'baseUri' => '/dbProject/', 
] ]); 

Шаг 3 — Выполнить команду для миграции таблиц, входящих в базу данных «demodb». На данный момент он включает в себя одну таблицу «пользователи».

ДЕМОДВ

Шаг 4 — Переносимые файлы базы данных хранятся в каталоге миграции в папке «app».

user.php

Таким образом, таблицы успешно перенесены.

Понимание анатомии перенесенных файлов

У перенесенного файла есть уникальный класс, который расширяет класс Phalcon \ Mvc \ Model \ Migration . Класс Migration в Phalcon включает методы up () и down () . Метод up () используется для выполнения миграции, в то время как метод down выполняет откат операции.

Users.php

<?php  

use Phalcon\Db\Column; 
use Phalcon\Db\Index; 
use Phalcon\Db\Reference; 
use Phalcon\Mvc\Model\Migration;  

/**  
   * Class UserMigration_100  
*/ 

class UserMigration_100 extends Migration {     
   /**      
      * Define the table structure      
      *      
      * @return void 
   */      
   public function morph() { 
      $this->morphTable('user', [ 
         'columns' => [ 
            new Column( 'Id', [ 
               'type' => Column::TYPE_INTEGER, 
               'notNull' => true, 
               'autoIncrement' => true, 
               'size' => 11, 'first' => true ] ), 
            new Column( 'username', [ 
               'type' => Column::TYPE_VARCHAR, 
               'notNull' => true, 
               'size' => 40, 
               'after' => 'Id' ] ), 
            new Column( 'email', [ 
               'type' => Column::TYPE_VARCHAR, 
               'notNull' => true, 
               'size' => 40, 
               'after' => 'username' ] ), 
            new Column( 'password', [ 
               'type' => Column::TYPE_VARCHAR, 
               'notNull' => true, 
               'size' => 10, 
               'after' => 'email' ] ) 
         ],  
         'indexes' => [new Index('PRIMARY', ['Id'], 'PRIMARY') ], 
            'options' => [ 'TABLE_TYPE' => 'BASE TABLE', 
               'AUTO_INCREMENT' => '3', 'ENGINE' => 'InnoDB', 
               'TABLE_COLLATION' => 'latin1_swedish_ci' ], 
      ] ); 
   }  
   
   /**      
      * Run the migrations      
      *      * @return void      
   */     

   public function up() {  
   }  

   /**      
      * Reverse the migrations      
      *
      * @return void      
   */
   public function down() {  
   } 
}               

Класс UserMigration_100, как показано в примере выше, включает в себя ассоциативный массив с четырьмя разделами, которые:

  • Столбцы — включает набор столбцов таблицы.

  • Индексы — включает в себя набор табличных индексов.

  • Ссылки — Включает все ограничения ссылочной целостности (внешний ключ).

  • Параметры — Массив с набором параметров создания таблицы.

Столбцы — включает набор столбцов таблицы.

Индексы — включает в себя набор табличных индексов.

Ссылки — Включает все ограничения ссылочной целостности (внешний ключ).

Параметры — Массив с набором параметров создания таблицы.

Как видно из приведенного выше примера, база данных версии 1.0.0 успешно перенесена. Phalcon может включать и запускать несколько процессов миграции в зависимости от того, как хранится содержимое базы данных.