婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識(shí)庫 > 多個(gè)Laravel項(xiàng)目如何共用migrations詳解

多個(gè)Laravel項(xiàng)目如何共用migrations詳解

熱門標(biāo)簽:合肥企業(yè)外呼系統(tǒng)線路 代理打電話機(jī)器人 電信外呼系統(tǒng)多少錢一個(gè)月 萍鄉(xiāng)商鋪地圖標(biāo)注 太原400電話申請(qǐng)流程 企業(yè)400電話辦理多少費(fèi)用 神龍斗士電話機(jī)器人 宿州正規(guī)外呼系統(tǒng)軟件 桂陽公司如何做地圖標(biāo)注

前言

在實(shí)際開發(fā)中,我們可能經(jīng)常會(huì)遇到一個(gè)項(xiàng)目會(huì)建立兩個(gè) Laravel 項(xiàng)目,一個(gè)是面向用戶的 web/API,一個(gè)是管理員后臺(tái),這兩個(gè)項(xiàng)目一般情況下是共用一個(gè)數(shù)據(jù)庫的,那么我們的 migration 可以共用嗎?該怎么操作?

Migration就相當(dāng)于數(shù)據(jù)庫的版本控制工具,可以使用

php artisan migration

生成數(shù)據(jù)庫表,但前提是要在database目錄下有相應(yīng)的表的PHP文件

下面話不多說了,來一起看看詳細(xì)的介紹吧

在各項(xiàng)目里建各自 migration

我們先在 web/API 和 admin 里都建各自的 migration:

## web 目錄

php artisan make:migration foo
# Created Migration: 2018_09_19_144940_foo

php artisan migrate
# Migration table created successfully.
# Migrating: 2018_09_19_144940_foo
# Migrated: 2018_09_19_144940_foo

php artisan migrate:status
# +------+-----------------------+-------+
# | Ran? | Migration    | Batch |
# +------+-----------------------+-------+
# | Yes | 2018_09_19_144940_foo | 1  |
# +------+-----------------------+-------+

## admin 目錄

php artisan make:migration bar
# Created Migration: 2018_09_19_145255_bar

php artisan migrate
# Migrating: 2018_09_19_145255_bar
# Migrated: 2018_09_19_145255_bar

php artisan migrate:status
# +------+-----------------------+-------+
# | Ran? | Migration    | Batch |
# +------+-----------------------+-------+
# | Yes | 2018_09_19_144940_foo | 1  |
# +------+-----------------------+-------+
# | Yes | 2018_09_19_145255_bar | 2  |
# +------+-----------------------+-------+

從 artisan migrate:status 的結(jié)果來看,兩個(gè) migration 都正常執(zhí)行了,接下來我們?cè)囈幌禄貪L操作。

先直接在 web 目錄執(zhí)行

php artisan migrate:rollback
# Migration not found: 2018_09_19_145255_bar

報(bào)錯(cuò)了,因?yàn)樵?web 項(xiàng)目里找不到 bar 這個(gè) migration 文件;那如果我們剛剛是直接在 admin 目錄執(zhí)行,是能夠正常回滾的,但是如果我們指定回滾兩個(gè)版本:

php artisan migrate:rollback --step=2

# Migration not found: 2018_09_19_144940_foo
# Rolling back: 2018_09_19_145255_bar
# Rolled back: 2018_09_19_145255_bar

這次回滾操作也是有問題的,只回滾了一半。

所以我們應(yīng)該按照 migrate 的相反順序執(zhí)行回滾,即先在 admin 執(zhí)行一次,然后再到 web 里再執(zhí)行一次。我們上面的實(shí)驗(yàn)很簡(jiǎn)單,要記住這些順序也不難,可是在實(shí)際的項(xiàng)目中,你的 migrations 就比這個(gè)復(fù)雜多了,而且只通過 migrate:status 你也看不出來執(zhí)行順序到底是怎么樣的,所以在各個(gè)項(xiàng)目里各自維護(hù)各自的 migrations 似乎行不通...

共用一份 migration

上面的實(shí)驗(yàn)我們可以知道,我們?cè)趫?zhí)行 artisan migrate 的時(shí)候,Laravel 會(huì)讀取 migrations 目錄里的文件和數(shù)據(jù)庫里的記錄,然后再執(zhí)行相應(yīng)的操作(并記錄這次操作);回滾的時(shí)候 Laravel 會(huì)讀取數(shù)據(jù)庫中的記錄,然后執(zhí)行 migrations 目錄里相應(yīng)的文件中的 down 方法。

而當(dāng) migrations 分散在不同的項(xiàng)目(目錄)里的時(shí)候,不管你在哪個(gè)項(xiàng)目中執(zhí)行 migrate:rollback 時(shí),都可能只有一部分 migration 文件被加載進(jìn)來,因此會(huì)造成一些奇奇怪怪的問題。

那我們可以將所有 migrations 放在同一個(gè)地方,怎么操作呢?再建一個(gè)新的項(xiàng)目似乎有點(diǎn)麻煩了...我們先看看幫助吧:

php artisan migrate --help

Description:
 Run the database migrations

Usage:
 migrate [options]

Options:
  --database[=DATABASE] The database connection to use
  --force    Force the operation to run when in production
  --path[=PATH]   The path to the migrations files to be executed
  --realpath    Indicate any provided migration file paths are pre-resolved absolute paths
  --pretend    Dump the SQL queries that would be run
  --seed     Indicates if the seed task should be re-run
  --step     Force the migrations to be run so they can be rolled back individually
 -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

果然有我們想要的東西:--path 和 --realpath,先來看看這兩個(gè)參數(shù)是什么用途:

--path[=PATH]  指定 migrations 文件的路徑
--realpath     表示 --path 指定的路徑為絕對(duì)路徑

那我們?cè)谶M(jìn)行 migrations 操作的時(shí)候,指定同一個(gè)路徑,那就可以共用 migrations 了:

php artisan make:migration foo --path="../admin/database/migrations"

# or

php artisan make:migration foo --path="/the/absolute_path/to/admin/database/migrations" --realpath


# migrate
php artisan migrate --path="../admin/database/migrations"

# migrate:rollback
php artisan migrate:rollback --path="../admin/database/migrations"

注:當(dāng)你不帶 --realpath 的時(shí)候,path 是以項(xiàng)目的根目錄為 / 的

總結(jié)

所以,當(dāng)我們需要在多個(gè) Laravel 項(xiàng)目中共用 migrations 的時(shí)候,最好的做法是通過 --path 指定 migrations 文件的目錄,這個(gè)目錄可以是一個(gè)獨(dú)立的 git repo,也可以是其中一個(gè) Laravel 項(xiàng)目(我個(gè)人推薦放在其中一個(gè)項(xiàng)目中,采用獨(dú)立的 git 分支),這樣既可以共用 migrations,在團(tuán)隊(duì)協(xié)作的時(shí)候也不會(huì)混亂和出現(xiàn)沖突

好了,以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

您可能感興趣的文章:
  • Laravel 5.4因特殊字段太長(zhǎng)導(dǎo)致migrations報(bào)錯(cuò)的解決
  • Laravel 5框架學(xué)習(xí)之?dāng)?shù)據(jù)庫遷移(Migrations)
  • 解決Laravel 不能創(chuàng)建 migration 的問題

標(biāo)簽:辛集 衡陽 白銀 太原 鄂州 廊坊 綏化 崇左

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《多個(gè)Laravel項(xiàng)目如何共用migrations詳解》,本文關(guān)鍵詞  多個(gè),Laravel,項(xiàng)目,如何,共用,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《多個(gè)Laravel項(xiàng)目如何共用migrations詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于多個(gè)Laravel項(xiàng)目如何共用migrations詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲精品一区二区三区影院 | 国产69精品久久777的优势| 日韩高清不卡一区二区| 黑人巨大精品欧美一区| 国产成人午夜视频| 欧美日韩亚洲不卡| 久久久国产精品午夜一区ai换脸| ...中文天堂在线一区| 一区二区不卡在线视频 午夜欧美不卡在 | 精品国产免费人成电影在线观看四季 | 91精品婷婷国产综合久久性色 | 91理论电影在线观看| 日本vs亚洲vs韩国一区三区二区| 日韩欧美色综合| 亚洲一区二区三区视频在线| 久久久亚洲综合| 日本一区二区三区四区| 国产精品黄色在线观看| 欧美日韩黄色影视| 久久精品亚洲精品国产欧美kt∨ | 亚洲人被黑人高潮完整版| 久久久777精品电影网影网| 日韩av一区二| 国产九色sp调教91| 国产精品麻豆一区二区| 国内精品视频一区二区三区八戒| av一区二区三区在线| 日韩一区二区在线看| 日欧美一区二区| 欧美aaa在线| 丰满岳乱妇一区二区三区| 色婷婷av一区二区三区gif| 99久久精品免费看国产| av爱爱亚洲一区| 欧洲一区二区三区免费视频| 91麻豆精品国产91久久久资源速度 | 欧美日韩日日夜夜| 亚洲欧洲色图综合| 亚洲精品国产a| 本田岬高潮一区二区三区| 丰满白嫩尤物一区二区| 日韩一区二区视频在线观看| 欧美一区二区三区成人| 久久精品免费在线观看| 亚洲免费观看高清完整| 美女精品一区二区| 欧美国产1区2区| 国产欧美一区二区精品久导航 | 蜜臀精品久久久久久蜜臀| 久久99久久精品| 在线看国产一区| 青青草国产精品97视觉盛宴 | 99re热这里只有精品视频| 91视频一区二区三区| 制服丝袜国产精品| 本田岬高潮一区二区三区| 久久一日本道色综合| 日韩亚洲欧美综合| 国产成人在线视频网址| 欧美成人三级在线| 亚洲成人免费影院| 欧美成人乱码一区二区三区| 伦理电影国产精品| 亚洲国产精品黑人久久久| 91一区一区三区| 91在线视频网址| 国产日韩三级在线| 久久久久久黄色| 亚洲另类色综合网站| 日韩有码一区二区三区| 99久久免费精品高清特色大片| 91精品免费在线观看| 一卡二卡三卡日韩欧美| 国产精品一二三四五| 欧美日韩亚洲丝袜制服| 国产精品国产精品国产专区不蜜| 麻豆免费精品视频| 欧美日韩精品免费观看视频| 亚洲精品日韩一| 色综合久久综合网| 国产精品传媒在线| 欧美在线一区二区| 欧美激情一区二区在线| 欧美精品乱码久久久久久| 国产一区二区福利视频| 亚洲日本va在线观看| 欧美视频精品在线| 亚洲人成精品久久久久久 | 成人h动漫精品一区二区| 久久精品国产亚洲一区二区三区| 亚洲综合免费观看高清在线观看| 中文字幕精品综合| 国产亚洲欧美中文| 国产精品1区2区3区在线观看| 欧美日韩中文字幕一区| 一本一本大道香蕉久在线精品 | 久久精品国产第一区二区三区| 日韩免费一区二区| 国产亚洲制服色| 精品国产露脸精彩对白| 免费看日韩精品| 成人精品国产福利| 一本到不卡免费一区二区| 欧美一级高清大全免费观看| 亚洲美女少妇撒尿| 欧美一区二区网站| 国产精品18久久久久久久久久久久| 精品乱人伦一区二区三区| 风间由美一区二区av101| 亚洲免费看黄网站| 日韩一区在线看| 成人a免费在线看| 国产色产综合色产在线视频| 经典三级在线一区| 亚洲美女电影在线| 国产日韩欧美一区二区三区乱码 | 国产精品久久久久影院亚瑟| 91在线观看高清| 婷婷综合五月天| 久久久99精品免费观看| 成年人国产精品| 日韩av高清在线观看| 亚洲人妖av一区二区| 色婷婷精品久久二区二区蜜臂av| 蜜臀av一区二区在线免费观看| 精品99999| 欧美日韩在线免费视频| 成人激情午夜影院| 精品中文av资源站在线观看| 亚洲国产精品久久久男人的天堂 | 国产精品私人自拍| 精品久久久久久无| 欧美www视频| 精品国产乱码久久久久久闺蜜| 欧美日韩精品一区二区在线播放 | 欧美精品乱码久久久久久| 色婷婷综合五月| 欧美午夜一区二区三区| 日本韩国欧美在线| 欧美日韩精品欧美日韩精品一| 欧美在线制服丝袜| 欧美日韩久久一区| 日韩一区二区三区精品视频| 欧美一区二区免费视频| 久久这里只精品最新地址| 国产午夜精品在线观看| 玉足女爽爽91| 麻豆精品在线视频| 99re这里只有精品视频首页| 欧美性大战久久久久久久| 日韩欧美一区二区视频| 国产女人18毛片水真多成人如厕| 国产成人精品一区二| 一本一道综合狠狠老| 欧美专区亚洲专区| 精品国产青草久久久久福利| 国产精品久久久久毛片软件| 亚洲国产精品久久久久秋霞影院 | 日韩欧美综合一区| 成人欧美一区二区三区白人| 日韩二区三区四区| 91麻豆国产香蕉久久精品| 亚洲综合自拍偷拍| 亚洲电影在线免费观看| 豆国产96在线|亚洲| 欧美一级日韩一级| 亚洲少妇中出一区| av亚洲精华国产精华| 国产欧美精品一区aⅴ影院 | 日韩精品中文字幕在线一区| 中文字幕中文字幕在线一区| 国产精品1区二区.| 91精品国产综合久久精品图片| 国产成人综合网站| 亚洲综合一二三区| 国产二区国产一区在线观看| 免费一区二区视频| 久久国产精品一区二区| 免费不卡在线观看| 亚洲卡通动漫在线| 亚洲国产精品麻豆| 99国产精品久久久久久久久久| 精品亚洲aⅴ乱码一区二区三区| 国产人妖乱国产精品人妖| 91美女蜜桃在线| 91黄色在线观看| 精品第一国产综合精品aⅴ| 久久久精品国产免费观看同学| 欧美激情一区二区在线| 五月天欧美精品| 欧美精品久久99久久在免费线 | 99综合电影在线视频| 欧美韩国一区二区| 91国产视频在线观看| 免费成人av资源网| 国产精品久久综合| 欧美久久久一区| 久久99在线观看| 欧美激情一区二区三区在线| 欧美性生交片4|