这段时间一直在思考,想着把迁移功能给独立出来。所以还是按照Laravel的模式重新写了一版并提交到了 GitHub 中,另外 Packagist 也发布了。
下面简单介绍一下。
首先创建项目使用如下命令:
代码语言:javascript复制composer create-project wowangjuanzi/migrate
创建好后查看文件目录
代码语言:javascript复制$ tree ./migrate/ -L 3
./migrate/
├── README.md
├── artisan -> console.php
├── composer.json
├── composer.lock
├── config
│ ├── app.php
│ └── database.php
├── console.php
├── database
│ └── migrations
├── helper.php
└── vendor
├── autoload.php
├── bin
│ ├── carbon -> ../nesbot/carbon/bin/carbon
│ └── var-dump-server -> ../symfony/var-dumper/Resources/bin/var-dump-server
├── composer
│ ├── ClassLoader.php
│ ├── LICENSE
│ ├── autoload_classmap.php
│ ├── autoload_files.php
│ ├── autoload_namespaces.php
│ ├── autoload_psr4.php
│ ├── autoload_real.php
│ ├── autoload_static.php
│ └── installed.json
├── doctrine
│ └── inflector
├── illuminate
│ ├── config
│ ├── console
│ ├── container
│ ├── contracts
│ ├── database
│ ├── events
│ ├── filesystem
│ └── support
├── nesbot
│ └── carbon
├── phpoption
│ └── phpoption
├── psr
│ ├── container
│ └── simple-cache
├── symfony
│ ├── console
│ ├── finder
│ ├── polyfill-ctype
│ ├── polyfill-mbstring
│ ├── polyfill-php72
│ ├── polyfill-php73
│ ├── process
│ ├── service-contracts
│ ├── translation
│ ├── translation-contracts
│ └── var-dumper
└── vlucas
└── phpdotenv
38 directories, 20 files
config
文件夹包含的是相关配置文件,比如app.php
中就是指定运行的环境。database.php
指定的是数据库的相关配置信息。
console.php
是我自己定义的,类似Laravel
中的artisan
,不过我也创建了一个软链artisan
->console.php
。方便进行适应。
还有一个文件是.env
,该文件内容如下:
APP_NAME=Migrate
APP_ENV=local
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
这里的配置跟Laravel相同,这里我就不过多描述了。
操作命令主要如下:
代码语言:javascript复制$ php artisan
Migrate 0.0.3
Usage:
command [options] [arguments]
Options:
-h, --help Display this help message
-q, --quiet Do not output any message
-V, --version Display this application version
--ansi Force ANSI output
--no-ansi Disable ANSI output
-n, --no-interaction Do not ask any interactive question
--env[=ENV] The environment the command should run under
-v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
Available commands:
help Displays help for a command
list Lists commands
migrate Run the database migrations
db
db:wipe Drop all tables, views, and types
make
make:migration Create a new migration file
migrate
migrate:fresh Drop all tables and re-run all migrations
migrate:install Create the migration repository
migrate:refresh Reset and re-run all migrations
migrate:reset Rollback all database migrations
migrate:rollback Rollback the last database migration
比如创建迁移文件:
代码语言:javascript复制$ php artisan make:migration create_users_table
Created Migration: 2019_11_24_135530_create_users_table
具体其他的可以参考Laravel文档:
- 官网 - 数据库迁移
- LearnKu - 数据库迁移
- 学院君 - 数据库迁移
最后
欢迎大家来尝试我写的这个工具,如果有什么疑问,可以跟我留言提issus。