lilweb / evolution-bundle

此包已被 弃用 且不再维护。作者建议使用 doctrine/migrations 包。

数据库演化的简单套餐

安装: 613

依赖: 0

建议者: 0

安全: 0

星标: 1

关注者: 3

分支: 0

开放问题: 4

类型:symfony-bundle

0.1.1 2013-11-21 09:17 UTC

This package is not auto-updated.

Last update: 2022-02-01 12:24:12 UTC


README

1. composer.json 配置

在 composer.json 中添加以下行(如有需要可进行调整)

"require": {
    "Lilweb/evolution-bundle": "0.*"
}

也可以在命令行中进行操作

$> composer require Lilweb/evolution-bundle

2. 启用套餐

在 app/AppKernel.php 中

<?php
    public function registerBundles()
    {
        $bundles = array(
            // ...
            new Lilweb\EvolutionBundle\LilwebEvolutionBundle(),
        );

        // ...
    }

3. 配置套餐

您可以覆盖存储演化的目录

# app/config/config.yml
lilweb_evolution:
    evolution_dir: /full/path/to/directory

注意:默认情况下,它等同于 %kernel.root_dir/evolutions

4. 使用方法

该套餐的操作非常简单:将一系列演化应用到数据库上。

从已执行的最后一个演化开始,该套餐将寻找要应用的新演化,同时具备在出现问题时回滚的能力。

要编写演化,您只需定义您的

  • "Ups": 要应用的演化
  • "Downs": 反演化(例如:如果我的演化失败,我将做什么)

示例

-- Migration du 12/10/2004

# Script #1

-- Script number one

# /!\ Respecter la syntaxe de la ligne suivante:
# --- !Ups

CREATE TABLE IF NOT EXISTS `toto` (
  `id` int(11) NOT NULL, -- comment
  `name` varchar(10) DEFAULT NULL, # comment
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE IF NOT EXISTS `titi` (
  `id` int(11) NOT NULL,
  `name` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

# /!\ Respecter la syntaxe de la ligne suivante:
# --- !Downs

DROP TABLE toto;
DROP TABLE titi;

注意:文件名必须符合格式 [\d]+.sql(例如:1.sql,15.sql ...)注意2:如有问题,将回滚到有问题的版本,直到演化之前的版本。