亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

多個Laravel項目如何共用migrations詳解

2024-05-05 00:05:25
字體:
來源:轉載
供稿:網友

前言

在實際開發中,我們可能經常會遇到一個項目會建立兩個 Laravel 項目,一個是面向用戶的 web/API,一個是管理員后臺,這兩個項目一般情況下是共用一個數據庫的,那么我們的 migration 可以共用嗎?該怎么操作?

Migration就相當于數據庫的版本控制工具,可以使用 

php artisan migration 

生成數據庫表,但前提是要在database目錄下有相應的表的PHP文件

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

在各項目里建各自 migration

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

## web 目錄php artisan make:migration foo# Created Migration: 2018_09_19_144940_foophp artisan migrate# Migration table created successfully.# Migrating: 2018_09_19_144940_foo# Migrated: 2018_09_19_144940_foophp 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_barphp artisan migrate# Migrating: 2018_09_19_145255_bar# Migrated: 2018_09_19_145255_barphp artisan migrate:status# +------+-----------------------+-------+# | Ran? | Migration    | Batch |# +------+-----------------------+-------+# | Yes | 2018_09_19_144940_foo | 1  |# +------+-----------------------+-------+# | Yes | 2018_09_19_145255_bar | 2  |# +------+-----------------------+-------+

從 artisan migrate:status 的結果來看,兩個 migration 都正常執行了,接下來我們試一下回滾操作。

先直接在 web 目錄執行

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

報錯了,因為在 web 項目里找不到 bar 這個 migration 文件;那如果我們剛剛是直接在 admin 目錄執行,是能夠正?;貪L的,但是如果我們指定回滾兩個版本:

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

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

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

共用一份 migration

上面的實驗我們可以知道,我們在執行 artisan migrate 的時候,Laravel 會讀取 migrations 目錄里的文件和數據庫里的記錄,然后再執行相應的操作(并記錄這次操作);回滾的時候 Laravel 會讀取數據庫中的記錄,然后執行 migrations 目錄里相應的文件中的 down 方法。

而當 migrations 分散在不同的項目(目錄)里的時候,不管你在哪個項目中執行 migrate:rollback 時,都可能只有一部分 migration 文件被加載進來,因此會造成一些奇奇怪怪的問題。

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

php artisan migrate --helpDescription: Run the database migrationsUsage: 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,先來看看這兩個參數是什么用途:

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

那我們在進行 migrations 操作的時候,指定同一個路徑,那就可以共用 migrations 了:

php artisan make:migration foo --path="../admin/database/migrations"# orphp artisan make:migration foo --path="/the/absolute_path/to/admin/database/migrations" --realpath# migratephp artisan migrate --path="../admin/database/migrations"# migrate:rollbackphp artisan migrate:rollback --path="../admin/database/migrations"

注:當你不帶 --realpath 的時候,path 是以項目的根目錄為 / 的

總結

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

好了,以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97在线看免费观看视频在线观看| 成人性生交xxxxx网站| 亚洲激情国产精品| 国产精品视频区| 日韩电影大片中文字幕| 日韩在线视频免费观看高清中文| 国产精品久久久久久久久久久新郎| 免费成人高清视频| 日韩在线激情视频| 日韩在线观看精品| 亚洲全黄一级网站| 国产精品高潮呻吟久久av无限| 欧美日韩电影在线观看| 国产精品91免费在线| 成人黄色av网| 日本亚洲欧美成人| 欧美大片第1页| 国产免费一区二区三区香蕉精| 中文字幕精品一区二区精品| 91免费看国产| 欧美影院久久久| 欧美精品精品精品精品免费| 啊v视频在线一区二区三区| 亚洲成人国产精品| 亚洲国产成人精品电影| 成人久久久久爱| 亚洲精品视频久久| 在线日韩欧美视频| 日韩av免费在线| 日韩精品中文字幕视频在线| 久久精品国产精品亚洲| 欧美性感美女h网站在线观看免费| 欧美性videos高清精品| 91香蕉嫩草影院入口| 日韩在线观看av| 91久久久久久久久久久久久| 日韩av在线播放资源| 亚洲专区中文字幕| 欧美高清在线播放| 成人羞羞国产免费| 丝袜一区二区三区| 日韩中文字幕第一页| 国产视频久久网| 免费97视频在线精品国自产拍| 91国产美女在线观看| 久久久久久国产三级电影| 亚洲免费成人av电影| 国产一区二区欧美日韩| 麻豆一区二区在线观看| 亚洲精品天天看| 国产精品高潮呻吟久久av无限| 日韩高清不卡av| 久久国产精品首页| 国产精品高清网站| 国产精品视频xxxx| 欧美电影在线播放| 亚洲视频在线视频| 欧美视频免费在线观看| 久久久av一区| 亚洲精品久久久久久久久| 日韩亚洲欧美成人| 中文字幕av日韩| 亚洲第一中文字幕| 成人免费看黄网站| 国产国语刺激对白av不卡| 国产精品激情av在线播放| 日韩电影在线观看中文字幕| 成人久久一区二区| 中日韩美女免费视频网站在线观看| 国产精品人人做人人爽| 国产精品久久久久久中文字| 亚洲综合最新在线| 成人欧美在线观看| 91精品成人久久| 欧美韩国理论所午夜片917电影| 久久久久久噜噜噜久久久精品| 欧美日韩亚洲一区二区三区| 不卡av在线网站| 岛国av午夜精品| 欧美国产日产韩国视频| 久久久在线免费观看| 欧美成人剧情片在线观看| 欧美网站在线观看| 欧美激情视频给我| 国产啪精品视频网站| 久久久久国产精品www| 久久久久国色av免费观看性色| 国产精品成人久久久久| 久久精品国产视频| 久久久精品在线观看| 日韩视频一区在线| 久久久国产精品亚洲一区| 精品久久久久久国产91| 国产欧美日韩综合精品| 91视频九色网站| 欧美性资源免费| 亚洲爱爱爱爱爱| 精品国产91乱高清在线观看| 欧美日韩国产专区| 中文字幕亚洲精品| 动漫精品一区二区| 在线观看不卡av| 26uuu另类亚洲欧美日本一| 亚洲成人精品av| 国产精品视频最多的网站| 日韩av电影免费观看高清| 久久人人爽国产| 国产亚洲欧美视频| 国产精品欧美日韩久久| 日韩欧美视频一区二区三区| 91免费欧美精品| 日韩精品免费在线观看| 中文国产亚洲喷潮| 日本a级片电影一区二区| 国产91网红主播在线观看| 日本久久久久久久| 91精品国产91久久久久久最新| 色老头一区二区三区| 久久久国产影院| 亚洲va码欧洲m码| 欧美与黑人午夜性猛交久久久| 日韩欧美国产黄色| 97精品一区二区三区| 久久国产精品久久精品| 国产精品自产拍在线观看中文| 草民午夜欧美限制a级福利片| 91国产一区在线| 国产精品第一视频| 亚洲国产欧美一区二区三区久久| 日韩欧美国产网站| 欧美高跟鞋交xxxxxhd| 日韩大片在线观看视频| 久久久最新网址| 久久中国妇女中文字幕| 欧美亚洲在线播放| 国产精品精品久久久久久| 色先锋资源久久综合5566| 国内精品小视频在线观看| 欧美成人性色生活仑片| 久热精品在线视频| 中文国产成人精品| 欧美亚洲另类激情另类| 国产日韩中文字幕| 日韩有码在线播放| 日韩电视剧免费观看网站| 久久精品成人一区二区三区| 欧美一级片在线播放| 亚洲精品日韩激情在线电影| 成人免费淫片视频软件| 91亚洲精品久久久久久久久久久久| 亚洲黄页视频免费观看| 国产精品成av人在线视午夜片| 国产亚洲欧美另类中文| 亚洲女同性videos| 久久精品国产亚洲| 日韩欧美a级成人黄色| 26uuu亚洲国产精品| 国内精品久久久久影院 日本资源| 中文字幕亚洲欧美在线| 日韩三级成人av网| 成人午夜一级二级三级| 久久伊人精品天天| 色哟哟入口国产精品| 国产一区二区日韩精品欧美精品|