lilweb / evolution-bundle
0.1.1
2013-11-21 09:17 UTC
Requires
- php: >=5.3.0
- doctrine/doctrine-bundle: 1.*
- doctrine/orm: >=2.2.3,<2.4-dev
- symfony/monolog-bundle: 2.*
- symfony/symfony: 2.*
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:如有问题,将回滚到有问题的版本,直到演化之前的版本。