Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Миграции и инсталляции

Содержание

Инсталляция рабочей копии проекта
Миграции и  Инсталляции   QuartSoftYiiSoftКлимов П.В. Инсталляция рабочей копии проекта Обновление рабочей копии проекта Откат рабочей копии проекта Системы контроля версий Миграции по разным рабочим копиям class m170506_185632_createUser extends Migration {  public function up() { История PHP и история БД class m141106_185632_log_init extends Migration {  public function up() { use app\models\User;class m141106_185632_updateUser extends Migration {  public function up() { class m141106_185632_createFaqCategory extends Migration {  public function up() { «Инсталляция» расширения / модуля Применение миграций из нескольких источников Переключение «migrationPath»$ php yii migrate   --migrationPath=@app/migrations$ php yii migrate История на сервере разработки История на «production» сервере История на «production» сервере Повторное использование кода$array = [$day1Revenue, $day2Revenue, $day3Revenue];$avgRevenue = array_sum($array) / count($array);// …$array Рефакторингfunction avg (array $values) {  if (empty($values)) { Внешняя миграция, ревизия №1class m160201_132117_someExtensionMigration extends Migration{  public function up() Внешняя миграция, ревизия №2class m160201_132117_someExtensionMigration extends Migration{  public function up() Раздельная история$ php yii migrate   --migrationPath=@app/migrations$ php yii migrate Наследование// Без пространства имен:require (Yii::getAlias(‘@some/extension/ m160201_132117_someExtensionMigration.php’));class m170505_142134_applySomeExtension extends m160201_132117_someExtensionMigration {}// С пространством История при наследовании Наследование и модификацияrequire (Yii::getAlias(‘@yii/rbac/m140506_102106_rbac_init.php’));class m170505_142134_rbac extends m140506_102106_rbac_init{  protected function getAuthManager() Инверсияrequire (Yii::getAlias(‘@yii/rbac/m140506_102106_rbac_init.php’));class m170505_142134_undoRbac extends m140506_102106_rbac_init{  protected function getAuthManager()  { Агрегацияrequire (Yii::getAlias(‘@some/extension/m160201_132117_A.php’));require (Yii::getAlias(‘@another/extension/m150301_141133_B.php’));class m170505_142134_aggregation extends \yii\db\Migration{  public function up()  { Агрегация с пространством именnamespace app\migrations;use some\extension\M160201132117A.php’;use another\extension\M150301141133B.php;class M170505142134Aggregation extends \yii\db\Migration{  public История при агрегации Независимое использование миграцийuse my\extension\M170505142134Foo;class InstallController extends \yii\console\Controller{  public function actionInstall() Миграции в модульных тестахclass BlogPostTest extends TestCase{  protected function setUp() Миграции и ИнсталляцииИнсталляция, обновление, откат рабочей копии проектаМиграции – VCS для БДТипичные
Слайды презентации

Слайд 2 Инсталляция рабочей копии проекта

Инсталляция рабочей копии проекта

Слайд 3 Обновление рабочей копии проекта

Обновление рабочей копии проекта

Слайд 4 Откат рабочей копии проекта

Откат рабочей копии проекта

Слайд 5 Системы контроля версий

Системы контроля версий

Слайд 6 Миграции по разным рабочим копиям

Миграции по разным рабочим копиям

Слайд 7 class m170506_185632_createUser extends Migration {
public function

up() {
$this->createTable(‘User’, []);
}

public function down() {
echo "m???_createUser cannot be reverted.\n";
return false;
}

class m170506_185632_createUser extends Migration {
public function up() {
$this->createTable(‘User’, []);
}
public function down() {
$this->dropTable(‘User’);
}


Слайд 8 История PHP и история БД

История PHP и история БД

Слайд 9 class m141106_185632_log_init extends Migration {
public function

class m141106_185632_log_init extends Migration { public function up() {  foreach

up() {
foreach (Yii::$app->getLog()->targets as $target)

{
if ($target instanceof DbTarget) {
$this->createTable($target->logTable, […]);
}
}
}

class m141106_185632_log_init extends Migration {
public function up() {
$columns = […];
$this->createTable(‘AppLog’, $columns);
$this->createTable(‘ErrorLog’, $columns);
}


Слайд 10 use app\models\User;

class m141106_185632_updateUser extends Migration {
public

use app\models\User;class m141106_185632_updateUser extends Migration { public function up() {

function up() {
User::updateAll([‘statusId’ => 5],

[‘statusId’ => 10]);
}
public function down() {
foreach (User::find()->where([‘statusId’ => 10])->all() as $user) {
$user->statusId = 5;
}
}

class m141106_185632_updateUser extends Migration {
public function up() {
$this->update(‘User’, [‘statusId’ => 5], [‘statusId’ => 10]);
}
}


Слайд 11 class m141106_185632_createFaqCategory extends Migration {
public function

class m141106_185632_createFaqCategory extends Migration { public function up() {  $this->createTable(‘FaqCategory’,

up() {
$this->createTable(‘FaqCategory’, […]);

}
}

class m141106_185632_createFaqQuestion extends Migration {
public function up() {
$this->createTable(‘FaqQuestion’, […]);
}
}

class m141106_185632_createFaq extends Migration {
public function up() {
$this->createTable(‘FaqCategory’, […]);
$this->createTable(‘FaqQuestion’, […]);
}
}


Слайд 12 «Инсталляция» расширения / модуля

«Инсталляция» расширения / модуля

Слайд 13 Применение миграций из нескольких источников

Применение миграций из нескольких источников

Слайд 14 Переключение «migrationPath»
$ php yii migrate

Переключение «migrationPath»$ php yii migrate  --migrationPath=@app/migrations$ php yii migrate

--migrationPath=@app/migrations
$ php yii migrate
--migrationPath=@some/extension/migrations
Использование пространства

имен

return [
'controllerMap' => [
'migrate' => [
'class' => 'yii\console\controllers\MigrateController',
'migrationNamespaces' => [
'app\migrations',
               'some\extension\migrations',
],
],
],
// …
];


Слайд 15 История на сервере разработки

История на сервере разработки

Слайд 16 История на «production» сервере

История на «production» сервере

Слайд 17 История на «production» сервере

История на «production» сервере

Слайд 18 Повторное использование кода
$array = [$day1Revenue, $day2Revenue, $day3Revenue];
$avgRevenue =

Повторное использование кода$array = [$day1Revenue, $day2Revenue, $day3Revenue];$avgRevenue = array_sum($array) / count($array);//

array_sum($array) / count($array);
// …
$array = [$day1Costs, $day2Costs, $day3Costs];
$avgCosts =

array_sum($array) / count($array);

function avg (array $values) {
return array_sum($values) / count($values);
}

$avgRevenue = avg([$day1Revenue, $day2Revenue, $day3Revenue]);
// …
$avgCosts = avg([$day1Costs, $day2Costs, $day3Costs]);



Слайд 19 Рефакторинг
function avg (array $values) {
if (empty($values))

Рефакторингfunction avg (array $values) { if (empty($values)) {  return 0;

{
return 0;
}

return array_sum($values) / count($values);
}

$avgRevenue = avg([$day1Revenue, $day2Revenue, $day3Revenue]);
// …
$avgCosts = avg([$day1Costs, $day2Costs, $day3Costs]);

Слайд 20 Внешняя миграция, ревизия №1
class m160201_132117_someExtensionMigration extends Migration
{

Внешняя миграция, ревизия №1class m160201_132117_someExtensionMigration extends Migration{ public function up() {

public function up()
{
$this->createTable(‘BlogPostCategory’,

[…]);
$this->createTable(‘BlogPost’, […]);
}

public function down()
{
$this->dropTable(‘BlogPost’);
$this->dropTable(‘BlogPostCategory’);
}
}

Слайд 21 Внешняя миграция, ревизия №2
class m160201_132117_someExtensionMigration extends Migration
{

Внешняя миграция, ревизия №2class m160201_132117_someExtensionMigration extends Migration{ public function up() {

public function up()
{
$this->createTable(‘BlogPostCategory’,

[…]);
$this->createTable(‘BlogPost’, […]);
$this->createTable(‘BlogPostComment’, […]);
}

public function down()
{
$this->dropTable(‘BlogPostComment’);
$this->dropTable(‘BlogPost’);
$this->dropTable(‘BlogPostCategory’);
}
}

Слайд 22 Раздельная история
$ php yii migrate

Раздельная история$ php yii migrate  --migrationPath=@app/migrations$ php yii migrate

--migrationPath=@app/migrations
$ php yii migrate
--migrationPath=@some/forum/migrations

--migrationTable=migration_forum

return [
'controllerMap' => [
'migrate-forum' => [
'class' => 'yii\console\controllers\MigrateController',
'migrationNamespaces' => [
               'some\forum\migrations',
],
'migrationTable' => 'migration_module',
],
],
// …
];


Слайд 23 Наследование
// Без пространства имен:
require (Yii::getAlias(‘@some/extension/ m160201_132117_someExtensionMigration.php’));

class m170505_142134_applySomeExtension extends

Наследование// Без пространства имен:require (Yii::getAlias(‘@some/extension/ m160201_132117_someExtensionMigration.php’));class m170505_142134_applySomeExtension extends m160201_132117_someExtensionMigration {}// С

m160201_132117_someExtensionMigration {}



// С пространством имен:
namespace app\migrations;

class M170505142134ApplySomeExtension extends \some\extension\migrations\M160201132117SomeExtensionMigration

{}

Слайд 24 История при наследовании

История при наследовании

Слайд 25 Наследование и модификация
require (Yii::getAlias(‘@yii/rbac/m140506_102106_rbac_init.php’));

class m170505_142134_rbac extends m140506_102106_rbac_init
{

Наследование и модификацияrequire (Yii::getAlias(‘@yii/rbac/m140506_102106_rbac_init.php’));class m170505_142134_rbac extends m140506_102106_rbac_init{ protected function getAuthManager() {

protected function getAuthManager()
{

return new yii\rbac\DbManager([‘itemTable’ => ‘RbacItem’, …]);
}

public function up()
{
parent::up();
$this->alterColumn($this->getAuthManager() ->assignmentTable,
‘user_id’, $this->integer()->notNull());
}
}

Слайд 26 Инверсия
require (Yii::getAlias(‘@yii/rbac/m140506_102106_rbac_init.php’));

class m170505_142134_undoRbac extends m140506_102106_rbac_init
{
protected function

Инверсияrequire (Yii::getAlias(‘@yii/rbac/m140506_102106_rbac_init.php’));class m170505_142134_undoRbac extends m140506_102106_rbac_init{ protected function getAuthManager() {

getAuthManager()
{
return new

yii\rbac\DbManager([‘itemTable’ => ‘RbacItem’, …]);
}
public function up()
{
parent::down(); // down -> up
}
public function down()
{
parent::up(); // up -> down
}

Слайд 27 Агрегация
require (Yii::getAlias(‘@some/extension/m160201_132117_A.php’));
require (Yii::getAlias(‘@another/extension/m150301_141133_B.php’));

class m170505_142134_aggregation extends \yii\db\Migration
{
public

Агрегацияrequire (Yii::getAlias(‘@some/extension/m160201_132117_A.php’));require (Yii::getAlias(‘@another/extension/m150301_141133_B.php’));class m170505_142134_aggregation extends \yii\db\Migration{ public function up() {

function up()
{
(new

m160201_132117_A([‘db’ => $this->db]))->up();
(new m150301_141133_B([‘db’ => $this->db]))->up();
}
public function down()
{
(new m150301_141133_B([‘db’ => $this->db]))->down();
(new m160201_132117_A([‘db’ => $this->db]))->down();
}
}

Слайд 28 Агрегация с пространством имен
namespace app\migrations;

use some\extension\M160201132117A.php’;
use another\extension\M150301141133B.php;

class M170505142134Aggregation

Агрегация с пространством именnamespace app\migrations;use some\extension\M160201132117A.php’;use another\extension\M150301141133B.php;class M170505142134Aggregation extends \yii\db\Migration{ public

extends \yii\db\Migration
{
public function up()
{

(new M160201132117A([‘db’ => $this->db]))->up();
(new M150301141133B([‘db’ => $this->db]))->up();
}
public function down()
{
(new M150301141133B([‘db’ => $this->db]))->down();
(new M160201132117A([‘db’ => $this->db]))->down();
}
}

Слайд 29 История при агрегации

История при агрегации

Слайд 30 Независимое использование миграций
use my\extension\M170505142134Foo;

class InstallController extends \yii\console\Controller
{

Независимое использование миграцийuse my\extension\M170505142134Foo;class InstallController extends \yii\console\Controller{ public function actionInstall() {

public function actionInstall()
{
(new

M170505142134Foo([‘db’ => Yii::$app->db]))->up();
}

public function actionUninstall()
{
(new M170505142134Foo([‘db’ => Yii::$app->db]))->down();
}
}

Слайд 31 Миграции в модульных тестах
class BlogPostTest extends TestCase
{

Миграции в модульных тестахclass BlogPostTest extends TestCase{ protected function setUp() {

protected function setUp()
{
$this->mockApplication();

Yii::$app->db->beginTransaction();
(new M170505142134Foo([‘db’ => Yii::$app->db]))->safeUp();
}

protected function tearDown()
{
Yii::$app->db->getTransaction()->rollback();
}

// …
}

  • Имя файла: migratsii-i-installyatsii.pptx
  • Количество просмотров: 156
  • Количество скачиваний: 0