ridtichai/laravel-existing-db-migration-generator 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

ridtichai/laravel-existing-db-migration-generator

最新稳定版本:v0.3.5

Composer 安装命令:

composer require ridtichai/laravel-existing-db-migration-generator

包简介

Generate Laravel migration and seeder files from an existing database schema.

README 文档

README

Generate Laravel migration and seeder files from an existing database schema.

🚀 Features

🧱 Migration Generator

  • Generate migration files from existing database tables

  • Convert schema into Laravel-friendly syntax:

    • $table->id()
    • $table->timestamps()
    • $table->foreignId()->constrained()
  • Support Laravel 8.75+

  • Support PHP 7.4 and PHP 8+

  • Works with MySQL, MariaDB, PostgreSQL, SQLite

🌱 Seeder Generator

  • Export table data into Laravel seeders

  • Support:

    • --all generate all tables
    • auto sort by foreign key dependency
    • auto register into DatabaseSeeder
    • auto create DatabaseSeeder if not exists
    • --truncate or delete() option
    • chunk insert for large data
    • multi-file seeder for big tables

🧩 CRUD Generator

  • Generate CRUD controller and Blade views from existing database tables
  • Use Eloquent Model instead of Query Builder
  • Use Bootstrap 5.2.3 as the default UI base
  • Read column comments in format label#input_type
  • Support configurable Blade parent path
  • Support configurable default Bootstrap form columns

📦 Installation

composer require ridtichai/laravel-existing-db-migration-generator

⚙️ Migration Usage

php artisan existing-db:generate-migrations

Options

Option Description
--connection= Database connection
--path= Output path
--table= Specific tables
--ignore= Ignore tables

🌱 Seeder Usage

Generate specific table

php artisan existing-db:generate-seeders --table=config_system

Generate multiple tables

php artisan existing-db:generate-seeders --table=users --table=roles

Generate all tables (🔥 recommended)

php artisan existing-db:generate-seeders --all

With truncate

php artisan existing-db:generate-seeders --all --truncate

Force overwrite

php artisan existing-db:generate-seeders --all --force

Disable auto register

php artisan existing-db:generate-seeders --all --no-register

🧠 Smart Features

🔗 Auto Sort by Foreign Key

Tables will be generated in correct order:

payment_status → payments → logs

📦 Multi-file Seeder

Large tables will be split automatically:

UsersTableSeederPart1
UsersTableSeederPart2
UsersTableSeederPart3

🧩 Auto Register Seeder

Generated seeders will be automatically added to:

DatabaseSeeder.php

🛠 Auto Create DatabaseSeeder

If not exists:

database/seeders/DatabaseSeeder.php

Will be generated automatically.

🧩 CRUD Usage

Generate CRUD from an existing table:

php artisan existing-db:generate-crud --table=users --path=pages/admin

Force overwrite existing files:

php artisan existing-db:generate-crud --table=users --force

Specify database connection:

php artisan existing-db:generate-crud --connection=mysql --table=users

📁 CRUD Generated Files

For:

php artisan existing-db:generate-crud --table=users

the package generates files like:

app/Http/Controllers/UserController.php
resources/views/users/index.blade.php
resources/views/users/create.blade.php
resources/views/users/edit.blade.php
resources/views/users/_form.blade.php

If view_parent_path is configured, the views will be generated inside that path.

--path=pages/admin

Generated views:

resources/views/pages/admin/users/index.blade.php
resources/views/pages/admin/users/create.blade.php
resources/views/pages/admin/users/edit.blade.php
resources/views/pages/admin/users/_form.blade.php

✅ Supported Input Types

Supported input types in column comments:

  • text
  • textarea
  • number
  • email
  • password
  • date
  • datetime
  • datetime-local
  • time
  • select
  • radio
  • checkbox
  • file
  • hidden

Example:

ชื่อ#text
รายละเอียด#textarea
จำนวน#number
อีเมล#email
รหัสผ่าน#password
สถานะ#select

🔧 Configuration

Publish config:

php artisan vendor:publish --tag=existing-db-migration-generator-config

Example:

return [
    'default_output_path' => 'database/migrations',
    'default_seeder_output_path' => 'database/seeders',

    'exclude_tables' => [
        'migrations',
        'password_resets',
        'failed_jobs',
        'personal_access_tokens',
    ],

    'crud' => [
        'layout' => 'layouts.index',
        'form_columns' => 2,
        'model_namespace' => 'App\\Models',
        'controller_namespace' => 'App\\Http\\Controllers',
    ],

    /*
    |--------------------------------------------------------------------------
    | Laravel Style Macros
    |--------------------------------------------------------------------------
    |
    | When enabled, the generator will try to output Laravel-style shortcuts:
    | - $table->id()
    | - $table->timestamps()
    | - $table->foreignId(...)->constrained(...)
    |
    | When disabled, the generator will stay closer to the original schema.
    |
    */
    'use_laravel_style_macros' => true,
    'omit_default_string_length' => true,

    'auto_register_seeder' => true,

    'multi_file_seed_threshold' => 1000,
];

📁 Example Output

Seeder

DB::table('config_system')->insert([
    [
        'id' => 1,
        'name' => 'Example',
        'created_at' => null,
    ],
]);

⚠️ Limitations

  • Complex foreign keys (composite) not fully supported
  • Some database-specific types may need manual adjustment
  • truncate() may fail with strict FK constraints

🧪 Compatibility

Laravel PHP
8.75+ 7.4 - 8.2+

📌 Roadmap

  • Index support
  • Unique & composite key support
  • Disable/enable foreign key checks option
  • Data-only / schema-only mode
  • Seeder rollback support

🤝 Contributing

Pull requests are welcome!

📄 License

MIT License

Changelog

v0.2.0

  • Add seeder generator
  • Add --all option
  • Auto sort by foreign key dependency
  • Auto register DatabaseSeeder
  • Multi-file seed support
  • Truncate option

v0.2.6

  • Added existing-db:generate-crud command

  • Generate CRUD from existing database tables

  • Generate Eloquent-based controller

  • Generate Blade views:

  • index.blade.php

  • create.blade.php

  • edit.blade.php

  • _form.blade.php

  • Support column comment format label#input_type

  • Support foreign key select field generation

  • Support configurable form_columns

  • Support configurable layout

  • Support configurable model_namespace

  • Support configurable controller_namespace

Changed

  • CRUD generator uses Bootstrap 5.2.3 as the default UI base
  • Generated controllers use Eloquent Model instead of Query Builder
  • Generated views support configurable parent path

Notes

  • Suitable for initial scaffolding after generating migrations and seeders
  • Recommended to review routes, models, and relations before production use

统计信息

  • 总下载量: 22
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 5
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-03-18

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固