Перенос базы данных важен по следующим причинам:
-
Перенос базы данных помогает переносить данные между указанными типами хранилищ.
-
Миграция базы данных относится к контексту миграции веб-приложений с одной платформы на другую.
-
Этот процесс обычно выполняется для отслеживания устаревших данных.
Перенос базы данных помогает переносить данные между указанными типами хранилищ.
Миграция базы данных относится к контексту миграции веб-приложений с одной платформы на другую.
Этот процесс обычно выполняется для отслеживания устаревших данных.
Phalcon выполняет процесс миграции базы данных следующим образом —
Шаг 1 — Создайте проект с именем «dbProject» в каталоге xampp / wamp .
Шаг 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».
Таким образом, таблицы успешно перенесены.
Понимание анатомии перенесенных файлов
У перенесенного файла есть уникальный класс, который расширяет класс 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 может включать и запускать несколько процессов миграции в зависимости от того, как хранится содержимое базы данных.