paysera / lib-database-init-bundle
初始化项目数据库
Requires
- php: ^7.4||^8.0
- doctrine/annotations: ^1.14
- doctrine/data-fixtures: ^1.0
- doctrine/dbal: ^2.5
- paysera/lib-dependency-injection: ^1.0
- symfony/console: ^5.0
- symfony/doctrine-bridge: ^5.0
- symfony/finder: ^5.0
- symfony/http-kernel: ^5.0
Requires (Dev)
- doctrine/doctrine-bundle: ^2.0
- doctrine/doctrine-migrations-bundle: ^3.2
- doctrine/orm: ^2.5
- phpunit/phpunit: ^9.0
- symfony/monolog-bundle: ^3.1
- symfony/symfony: ^5.0
This package is auto-updated.
Last update: 2024-09-20 09:26:40 UTC
README
初始化数据库到所需状态。导出数据库。可以配置以导出数据库的不同部分(结构、特定分组表)。支持纯SQL查询和Doctrine Fixtures。
安装
安装: composer requre --dev paysera/lib-database-init-bundle
注册
class AppKernel extends Kernel { public function registerBundles() { if (in_array($this->getEnvironment(), ['dev', 'test'], true)) { // ... $bundles[] = new \Paysera\Bundle\DatabaseInitBundle\PayseraDatabaseInitBundle(); } return $bundles; }
配置
在你的 config_dev.yml
中 - 更改表名与项目中的对应表名
paysera_database_init: directories: sql: initial: &initial '%kernel.project_dir%/sql/initial' additional: &additional '%kernel.project_dir%/sql/additional' fixtures: main: '%kernel.project_dir%/fixtures' structure: *initial exports: configuration: name: configuration tables: - config_table_1 - config_table_2 directory: *initial data: name: data invert_tables_from: configuration directory: *initial users: name: users tables: - users_table directory: *additional cards: name: cards tables: - card_table directory: *additional
-
paysera_database_init.directories.sql
(可选)- 将在指定的目录中查找*.sql
文件,按行分割,并执行每一行。多行SQL语句应以;\n
字符分隔。 -
paysera_database_init.exports
(可选)- 定义不同的数据库导出配置name
- 将用于导出文件的文件名priority
- 设置相对于其他导出的优先级;它也用作导出文件名的前缀tables
- 要导出的表的数组directory
- 导出文件将放置在此目录中
-
paysera_database_init.directories.fixtures
(可选)- 将在指定的目录中加载所有 fixtures 到数据库中。请注意,在应用 fixtures 之前应执行迁移。 -
paysera_database_init.directories.structure
(必需)- 结构将在指定的目录中导出 -
invert_tables_from
(可选)- 忽略指定的导出配置的表。当不指定tables
时,将导出数据库中除{invert_tables_from}.tables
之外的所有表
运行
bin/console paysera:db-init:init {initializer} {set}
initializer
- 可选的单个初始化器名称。- 提供的初始化器列表
sql
fixtures
set
- 可选的配置名称,例如上面的配置示例中的initial
或additional
。
bin/console paysera:db-init:export {export_key}
export_key
- 可选的单个导出器名称。
扩展
实现 \Paysera\Bundle\DatabaseInitBundle\Service\Initializer\DatabaseInitializerInterface
并使用 paysera_database_init.initializer
标记您的服务,提供 priority
标签属性。
运行PHPUnit测试
启动或切换开发环境
bin/devenv [7.4,8.0,8.1]
进入php容器
bin/devenv enter
安装composer包
composer install
运行测试
vendor/bin/phpunit
停止开发环境
bin/devenv stop