亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Yii2的無編程migrate示例

張紅新 / 956人閱讀

摘要:它分為這么幾個(gè)部分,這是下的標(biāo)準(zhǔn)執(zhí)行命令,沒什么好說的。,前面這是里執(zhí)行的標(biāo)準(zhǔn)命令,后面是說明我們要?jiǎng)?chuàng)建一個(gè)新的文件。,引號(hào)里的內(nèi)容詳細(xì)說明了我們要?jiǎng)?chuàng)建的這張數(shù)據(jù)庫表中的字段名稱及類型等。

認(rèn)識(shí)總是在不斷進(jìn)步的,其實(shí)事情遠(yuǎn)遠(yuǎn)沒有這么復(fù)雜,我們只需要安裝一個(gè)插件就夠了:

composer require -dev --prefer-dist insolita/yii2-migration-generator:~2.3

然后你只需要訪問Yii的gii頁面,就可以從原有的數(shù)據(jù)庫里自動(dòng)導(dǎo)出migrate文件了。不過以下方法依然有用,就是在你創(chuàng)建一個(gè)新的數(shù)據(jù)庫表的時(shí)候。


關(guān)于Yii2的migrate使用的文章網(wǎng)上已有不少,但很多已經(jīng)舊了,大量的還是教你如何編寫代碼,但實(shí)際上最新版Yii2的migrate可以盡量減少編寫代碼的工作,至少可以減少編寫php代碼而只通過命令行的方式就能達(dá)到目的。

我們直接分析以下命令行:

./yii migrate/create create_fac_item_table --fields="idfac_item:primaryKey,item_name:string(12):notNull,fac_id:integer:notNull:foreignKey(facility idfacility)"

雖然看上去很長,但是想清楚了寫出來還是不難的。它分為這么幾個(gè)部分:

./yii,這是linux下的標(biāo)準(zhǔn)執(zhí)行命令,沒什么好說的。

migrate/create,前面migrate這是Yii2里執(zhí)行migrate的標(biāo)準(zhǔn)命令,后面create是說明我們要?jiǎng)?chuàng)建一個(gè)新的migrate文件。

create_fac_item_table,這里create_xxx_table是一個(gè)標(biāo)準(zhǔn)格式,就是說我們要?jiǎng)?chuàng)建的這個(gè)migrate文件要完成的任務(wù)是創(chuàng)建名稱為xxx的數(shù)據(jù)庫表,我這里要?jiǎng)?chuàng)建的表的名稱是fac_item,所以是這種格式。

--fields="",引號(hào)里的內(nèi)容詳細(xì)說明了我們要?jiǎng)?chuàng)建的這張數(shù)據(jù)庫表中的字段名稱及類型等。下面詳細(xì)說明:

idfac_item:primaryKey,這個(gè)地方的意思是說這個(gè)表的主鍵名稱為idfac_item

item_name:string(12):notNull,這是第2個(gè)字段,它是一個(gè)string類型,長度為12,不允許為空

fac_id:integer:notNull:foreignKey(facility idfacility),這是第3個(gè)字段,它是一個(gè)數(shù)字型,非空,并且還有一個(gè)外鍵,連接到一個(gè)名稱為facility的數(shù)據(jù)庫表,連接的主鍵名稱為idfacility,中間以空格區(qū)格。

全部寫好之后回車,它會(huì)問你是否要執(zhí)行,如下:

Yii Migration Tool (based on Yii v2.0.12-dev)

Create new migration "/Library/WebServer/Documents/project/console/migrations/m170602_002220_create_fac_item_table.php"? (yes|no) [no]:yes
New migration created successfully.

它會(huì)自動(dòng)在console/migrations下生成一個(gè)新的.php文件,如下:

createTable("fac_item", [
            "idfac_item" => $this->primaryKey(),
            "item_name" => $this->string(12)->notNull(),
            "fac_id" => $this->integer()->notNull(),
        ]);

        // creates index for column `fac_id`
        $this->createIndex(
            "idx-fac_item-fac_id",
            "fac_item",
            "fac_id"
        );

        // add foreign key for table `facility`
        $this->addForeignKey(
            "fk-fac_item-fac_id",
            "fac_item",
            "fac_id",
            "facility",
            "idfacility",
            "CASCADE"
        );
    }

    public function down()
    {
        // drops foreign key for table `facility`
        $this->dropForeignKey(
            "fk-fac_item-fac_id",
            "fac_item"
        );

        // drops index for column `fac_id`
        $this->dropIndex(
            "idx-fac_item-fac_id",
            "fac_item"
        );

        $this->dropTable("fac_item");
    }
}

up和down的作用就不詳細(xì)解釋了,官方文檔有詳細(xì)解釋,大意是說up是向上執(zhí)行,down讓你有個(gè)后悔的余地。

缺省情況下,你的console/migrations目錄下應(yīng)該還有另外一個(gè)關(guān)于user表的創(chuàng)建文件,所以如果你現(xiàn)在就執(zhí)行./yii migrate的話,它會(huì)問你是否要執(zhí)行所有的操作:

Yii Migration Tool (based on Yii v2.0.12-dev)

Total 2 new migrations to be applied:
    m130524_201442_init
    m170602_002220_create_fac_item_table

Apply the above migrations? (yes|no) [no]:no

在這里,我們選擇no,因?yàn)槲覀償?shù)據(jù)庫里已經(jīng)有user這張表了,不需要再創(chuàng)建一遍,我們需要標(biāo)記一下,省得它以后老問我們這個(gè)問題:

./yii migrate/mark m130524_201442_init

然后再執(zhí)行./yii migrate

Yii Migration Tool (based on Yii v2.0.12-dev)

Total 1 new migrations to be applied:
    m170602_002220_create_fac_item_table

Apply the above migrations? (yes|no) [no]:yes
*** applying m170602_002220_create_fac_item_table
    > create table fac_item ... done (time: 0.555s)
    > create index idx-fac_item-fac_id on fac_item (fac_id) ... done (time: 0.649s)
    > add foreign key fk-fac_item-fac_id: fac_item (fac_id) references facility (idfacility) ... done (time: 0.529s)
*** applied m170602_002220_create_fac_item_table (time: 1.986s)


1 migration were applied.

Migrated up successfully.

用mysql workbench檢查數(shù)據(jù)庫,發(fā)現(xiàn)表已成功建立:

外鍵也是正確的:

我這里舉的例子只是創(chuàng)建數(shù)據(jù)庫表,其它比如刪除數(shù)據(jù)庫表,添加字段,刪除字段等工作都可以用這種命令行的方式完成,具體就不細(xì)講了,大家可以去參考Yii2的官方文檔。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/23069.html

相關(guān)文章

  • YII2快速學(xué)習(xí)筆記

    摘要:高性能始終是的首要目標(biāo)之一。版是上代的老版本,現(xiàn)在處于維護(hù)狀態(tài)。版是一個(gè)完全重寫的版本,采用了最新的技術(shù)和協(xié)議,包括依賴包管理器代碼規(guī)范命名空間特質(zhì)等等。所以,我們學(xué)習(xí)版本。啟用本鏡像服務(wù)系統(tǒng)全局配置即將配置信息添加到的全局配置文件中。 工作中需要用到Y(jié)II框架,于是乎,系統(tǒng)的學(xué)習(xí)下這套框架,詳細(xì)教程請(qǐng)看考該站完整系列:YII2教程 一、YII簡介 1、什么是YII Yii 是一個(gè)高性...

    kbyyd24 評(píng)論0 收藏0
  • Yii2系列教程七:Behaviors And Validations

    摘要:原文來自這一篇文章的開頭就無需多言了,緊接著上一篇的內(nèi)容和計(jì)劃,這一篇我們來說說的和。,那既然這樣,我們就來實(shí)現(xiàn)一下唄。所以我們首先需要將表中的幾條數(shù)據(jù)刪掉。下一節(jié)再詳細(xì)講講吧,這一節(jié)寫下來貌似要說的實(shí)在有點(diǎn)多。 原文來自:https://jellybool.com/post/programming-with-yii2-behaviors-and-validat... 這一篇...

    fasss 評(píng)論0 收藏0
  • 打通Laravel和Yii2任督二脈

    摘要:于是直接暴力開干,找說明書查詢。測試登錄,果然不通。一般情況下,這時(shí)候應(yīng)該遵照官方手冊(cè),開始建立自己相配套的數(shù)據(jù)庫體系。數(shù)據(jù)庫是連通了,出現(xiàn)了熟悉的錯(cuò)誤找不到表。登入登出完全正常,終于可以和和和美美地住在一個(gè)小房子里了。 Yii2與Laravel相愛相殺已經(jīng)很久了,導(dǎo)致廣大PHP愛好者必須選邊站隊(duì),生怕自己站錯(cuò)了陣營。作為一個(gè)已經(jīng)上了Yii2賊船很久的人想換船是需要很大勇氣的,能不能就...

    kohoh_ 評(píng)論0 收藏0
  • Yii2 restful接口方式開發(fā),權(quán)限控制(yii2-rest-rbac)

    摘要:根據(jù)修改,只是方式,這個(gè)相當(dāng)于的版本。適合用于前后端分離項(xiàng)目,方式提供接口,實(shí)現(xiàn)對(duì)接口的權(quán)限控制。 根據(jù)yii2-admin(https://github.com/mdmsoft/yi...)修改,yii2-admin只是web方式,這個(gè)相當(dāng)于yii2-admin的rest版本。適合用于前后端分離項(xiàng)目,rest方式提供接口,實(shí)現(xiàn)對(duì)接口的權(quán)限控制。項(xiàng)目地址:https://github....

    whataa 評(píng)論0 收藏0
  • Yii2系列教程五:簡單的用戶權(quán)限管理

    摘要:原文來自上一篇文章講了用戶的注冊(cè),驗(yàn)證和登錄,這一篇文章按照約定來說說之中的用戶和權(quán)限控制。探尋上面的一些列設(shè)置和代碼更改,已經(jīng)實(shí)現(xiàn)了一小部分的用戶控制登錄的用戶才能發(fā)表。 原文來自: https://jellybool.com/post/programming-with-yii2-user-access-controls 上一篇文章講了用戶的注冊(cè),驗(yàn)證和登錄,這一篇文章按照...

    livem 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<