paysera / lib-database-init-bundle
Initializes database for your project
Installs: 16 636
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 9
Forks: 2
Open Issues: 2
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-11-20 09:49:20 UTC
README
Initializes your database to needed state. Exports your database. Can be configured to export different parts of the database (stricture, specific grouped tables). Supports plain SQL queries and Doctrine Fixtures.
Installation
Install: composer requre --dev paysera/lib-database-init-bundle
Register:
class AppKernel extends Kernel { public function registerBundles() { if (in_array($this->getEnvironment(), ['dev', 'test'], true)) { // ... $bundles[] = new \Paysera\Bundle\DatabaseInitBundle\PayseraDatabaseInitBundle(); } return $bundles; }
Configuration
In your config_dev.yml
- change table names with corresponding tables in the project:
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
(optional) - Will look for*.sql
files in given directories, split each by lines, and execute each line. Multi-line SQL statements should be separated by;\n
characters. -
paysera_database_init.exports
(optional) - Define different DatabaseExport configurationsname
- will be used for the exported filenamepriority
- sets priority over the rest of the exports; it is also used as a prefix of the exported filenametables
- array of tables to be exporteddirectory
- exported file will be placed in this directory
-
paysera_database_init.directories.fixtures
(optional) - Will load all fixtures in given directories to database. Be aware that migrations should be executed before applying fixtures. -
paysera_database_init.directories.structure
(required) - Structure will be exported in stated directory -
invert_tables_from
(optional) - Will ignore specified export configuration's tables. When used without specifiedtables
it will export all tables in the db except{invert_tables_from}.tables
Run
bin/console paysera:db-init:init {initializer} {set}
initializer
- optional name of single initializer to run.- List of provided initializers:
sql
fixtures
set
- optional name of given configuration, i.e.initial
oradditional
in configuration example above.
bin/console paysera:db-init:export {export_key}
export_key
- optional name of single exporter to run.
Extension
Implement \Paysera\Bundle\DatabaseInitBundle\Service\Initializer\DatabaseInitializerInterface
and tag your service with paysera_database_init.initializer
, provide priority
tag attribute.
Run PHPUnit tests
Starting or switching the dev environment:
bin/devenv [7.4,8.0,8.1]
Entering php container:
bin/devenv enter
Install composer packages:
composer install
Running tests:
vendor/bin/phpunit
Stopping the dev environment:
bin/devenv stop