ucan-lab / laravel-dacapo
Laravel 迁移支持工具
5.2.0
2022-12-31 13:26 UTC
Requires
- php: ^8.0.2
- laravel/framework: >=9.21.0
- symfony/yaml: ^6.0
Requires (Dev)
- orchestra/testbench: 7.17.0
- phpunit/phpunit: 9.5.27
- roave/security-advisories: dev-latest
- dev-main
- 5.2.x-dev
- 5.2.0
- 5.1.2
- 5.1.1
- 5.1.0
- 5.0.2
- 5.0.1
- 5.0.0
- 4.x-dev
- 4.2.2
- 4.2.1
- 4.2.0
- 4.1.7
- 4.1.6
- 4.1.5
- 4.1.4
- 4.1.3
- 4.1.2
- 4.1.1
- 4.1.0
- 4.0.6
- 4.0.5
- 4.0.4
- 4.0.3
- 4.0.2
- 4.0.1
- 4.0.0
- 3.3.0
- 3.2.1
- 3.2.0
- 3.1.0
- 3.0.3
- 3.0.2
- 3.0.1
- 3.0.0
- 2.3.9
- 2.3.8
- 2.3.7
- 2.3.6
- 2.3.5
- 2.3.4
- 2.3.3
- 2.3.2
- 2.3.1
- 2.3.0
- 2.2.1
- 2.2.0
- 2.1.1
- 2.1.0
- 2.0.0
- 1.0.0
- 0.0.3
- 0.0.2
- 0.0.1
- dev-renovate/phpstan-packages
- dev-renovate/laravel-pint-1.x-lockfile
- dev-renovate/orchestra-testbench-9.x
- dev-renovate/orchestra-testbench-7.x
- dev-renovate/phpunit-phpunit-11.x
- dev-renovate/phpunit-phpunit-9.x
- dev-renovate/major-symfony
- dev-renovate/actions-checkout-4.x
- dev-topic-200
- dev-modeling
This package is auto-updated.
Last update: 2024-09-26 13:27:14 UTC
README
简介
Dacapo 是一个 Laravel 迁移文件创建支持库。在 schema yml 文件中定义表结构,总是生成最新且整洁的迁移文件。
此库仅适用于编码阶段。在操作阶段,请卸载并返回正常迁移操作。
安装
$ composer require --dev ucan-lab/laravel-dacapo
使用
生成默认 schema.yml
$ php artisan dacapo:init
database/schemas/default.yml
默认情况下,为 Laravel8 生成一个模式文件。
users: columns: id: name: string email: type: string unique: email_verified_at: type: timestamp nullable: password: string rememberToken: timestamps: password_resets: columns: email: type: string index: token: string created_at: type: timestamp nullable: failed_jobs: columns: id: uuid: type: string unique: connection: text queue: text payload: longText exception: longText failed_at: type: timestamp useCurrent:
生成迁移文件
$ php artisan dacapo
生成3个文件并迁移。
- 1970_01_01_000001_create_failed_jobs_table.php
- 1970_01_01_000001_create_password_resets_table.php
- 1970_01_01_000001_create_users_table.php
Dacapo 选项
# Execute migrate and seeding
$ php artisan dacapo --seed
# Do not execute migrate
$ php artisan dacapo --no-migrate
模式文件格式
{}
任意值database/schemas/*.yml
- 如果无法用 YAML 表达,则可以使用标准迁移一起使用。
php artisan make:migration
# COMMENT
{TableName}:
columns:
{ColumnName}: {ColumnType}
{ColumnName}:
type: {ColumnType}
{ColumnName}:
unique: true
nullable: true
default: {DefaultValue}
comment: {ColumnName}
{ColumnModifier}: {ColumnModifierValue}
indexes:
- columns: {ColumnName}
type: {IndexType}
- columns: [{ColumnName}, {ColumnName}]
type: {IndexType}
- columns: {ColumnName}
type: {IndexType}
name: {IndexName}
foreign_keys:
- columns: {ColumnName}
references: {ReferenceColumnName}
table: {ReferenceTableName}
- columns: {ColumnName}
references: {ReferenceColumnName}
table: {ReferenceTableName}
onUpdateAction: {ConstraintProperty}
onDeleteAction: {ConstraintProperty}
- columns: [{ColumnName}, {ColumnName}]
references: [{ReferenceColumnName}, {ReferenceColumnName}]
table: {ReferenceTableName}
{TableName}:
columns:
{ColumnName}: {ColumnType}
Dacapo 清理迁移
$ php artisan dacapo:clear
$ php artisan dacapo:clear --all
--all
删除包括标准迁移文件。
Dacapo Stub 发布
$ php artisan dacapo:stub:publish
Dacapo 卸载
$ php artisan dacapo:uninstall
$ composer remove --dev ucan-lab/laravel-dacapo