定制 va/cutlet-migrate 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

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

va/cutlet-migrate

Composer 安装命令:

composer require va/cutlet-migrate

包简介

A package to use migrate:update command with options for migrations in custom directories in laravel apps.

README 文档

README

GitHub issues GitHub stars GitHub forks GitHub license

Installation

composer require va/cutlet-migrate

Publish Config

php artisan vendor:publish --tag=cutlet-migrate

Usage

You can run this command for use:

php artisan migrate:update
php artisan migrate:update --migrate|-m
php artisan migrate:update --migrate|-m --seed|-s
php artisan migrate:update --migrate|-m --seed|-s --status|-t

and show the help with this command:

php artisan --help migrate:update
or
php artisan migrate:update -h

and you can customize the mysql migrations directories:

return [
    /*
     * It's from 'database/migrations/' path..
     */
    'functions_path' => 'mysql/functions',
    'procedures_path' => 'mysql/procedures',
    'triggers_path' => 'mysql/triggers',
    'views_path' => 'mysql/views',
];

How to create functions, procedures, triggers and views in laravel:

Use this command once time in project after install cutlet-migrate:
php artisan migrate:update

## Create a function:
php artisan make:migration function_name --path=database/migrations/mysql/functions

## Create a procedure:
php artisan make:migration procedure_name --path=database/migrations/mysql/procedures

## Create a trigger:
php artisan make:migration trigger_name --path=database/migrations/mysql/triggers

## Create a view:
php artisan make:migration view_name --path=database/migrations/mysql/views

How to write functions, procedures, triggers and views in migrations:

## Write a function:

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CutletFunction extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        \Illuminate\Support\Facades\DB::unprepared("
            DROP FUNCTION IF EXISTS function_name;
            CREATE FUNCTION function_name(
                param1 INT,
                param2 INT,
                ..
            )
            RETURNS datatype
            [NOT] DETERMINISTIC
            BEGIN
                -- statements
            END
        ");
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        \Illuminate\Support\Facades\DB::unprepared("
            DROP FUNCTION if EXISTS function_name;
        ");
    }
}
## Write a procedure:

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CutletProcedure extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        \Illuminate\Support\Facades\DB::unprepared("
            DROP PROCEDURE IF EXISTS procedure_name;
            CREATE PROCEDURE procedure_name(
                IN param1 INT,
                IN param2 INT,
                ..
            )
            BEGIN
                -- statements    
            END
        ");
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        \Illuminate\Support\Facades\DB::unprepared("
            DROP PROCEDURE IF EXISTS procedure_name;
        ");
    }
}
## Write a trigger:

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CutletTrigger extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        \Illuminate\Support\Facades\DB::unprepared("
            DROP TRIGGER IF EXISTS trigger_name;
            CREATE TRIGGER trigger_name
            {BEFORE | AFTER} {INSERT | UPDATE| DELETE }
            ON table_name FOR EACH ROW
                -- trigger_body;
        ");
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        \Illuminate\Support\Facades\DB::unprepared("
            DROP TRIGGER IF EXISTS trigger_name;
        ");
    }
}
## Write a view:

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CutletView extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        \Illuminate\Support\Facades\DB::unprepared("
            DROP VIEW IF EXISTS view_name;
            CREATE [OR REPLACE] VIEW [db_name.]view_name [(column_list)]
            AS
              -- select-statement;
        ");
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        \Illuminate\Support\Facades\DB::unprepared("
            DROP VIEW IF EXISTS view_name;
        ");
    }
}

How to use functions, procedures, triggers and views in controllers or repositories:

## Use functions:
$cutlet = DB::select('select cutletFunction(?,?) as cutletField', [$request->param1, $request->param2]);
// or ..

## Use procedures
$cutlets = DB::select('call cutletProcedure(?)', [$request->param1]);
or ..

## Use triggers:
// It's execute auto in mysql level

## Use views:
$cutlets = DB::table('cutletView');

Requirements:

  • PHP v7.0 or above
  • Laravel v5.8 or above

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2020-05-25

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固