1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        flyway 實(shí)現(xiàn) java 自動升級 SQL 腳本

        共 9476字,需瀏覽 19分鐘

         ·

        2021-07-10 12:19

        為什么要用Flyway

        在日常開發(fā)中,我們經(jīng)常會遇到下面的問題:

        1. 自己寫的SQL忘了在所有環(huán)境執(zhí)行;

        2. 別人寫的SQL我們不能確定是否都在所有環(huán)境執(zhí)行過了;

        3. 有人修改了已經(jīng)執(zhí)行過的SQL,期望再次執(zhí)行;

        4. 需要新增環(huán)境做數(shù)據(jù)遷移;

        5. 每次發(fā)版需要手動控制先發(fā)DB版本,再發(fā)布應(yīng)用版本;

        6. 其它場景...

        由于項(xiàng)目需求的變化,或者前期設(shè)計(jì)缺陷,導(dǎo)致在后期需要修改數(shù)據(jù)庫,這應(yīng)該是一個(gè)比較常見的事情,如果項(xiàng)目還沒上線,你可能把表刪除了重新創(chuàng)建,但是如果項(xiàng)目已經(jīng)上線了,就不能這樣簡單粗暴了,每次運(yùn)維部署項(xiàng)目,還得手動執(zhí)行一遍SQL文件。我們需要通過 SQL 腳本在已有數(shù)據(jù)表的基礎(chǔ)上進(jìn)行升級。

        有了flyway,這些問題都能得到很好的解決。

        使用了 Flyway 之后,如果再想進(jìn)行數(shù)據(jù)庫版本升級,就不用該以前的數(shù)據(jù)庫腳本了,直接創(chuàng)建新的數(shù)據(jù)庫腳本,項(xiàng)目在啟動時(shí)檢測了有新的更高版本的腳本,就會自動執(zhí)行,這樣,在和其他同事配合工作時(shí),也會方便很多。因?yàn)檎N覀兌际菑?Git 上拉代碼下來,不拉數(shù)據(jù)庫腳本,這樣要是有人更新了數(shù)據(jù)庫,其他同事不一定能夠收到最新的通知,使用了 Flyway 就可以有效避免這個(gè)問題了。

        所有的腳本,一旦執(zhí)行了,就會在 flyway_schema_history 表中有記錄,如果你不小心搞錯(cuò)了,可以手動從 flyway_schema_history 表中刪除記錄,然后修改 SQL 腳本后再重新啟動(生產(chǎn)環(huán)境不建議)。


        Flyway是如何工作的

        Flyway工作流程如下:

        1. 項(xiàng)目啟動,應(yīng)用程序完成數(shù)據(jù)庫連接池的建立后,F(xiàn)lyway自動運(yùn)行。

        2. 初次使用時(shí),F(xiàn)lyway會創(chuàng)建一個(gè)flyway_schema_history表,用于記錄sql執(zhí)行記錄。

        3. Flyway會掃描項(xiàng)目指定路徑下(默認(rèn)是classpath:db/migration)的所有sql腳本,與flyway_schema_history表腳本記錄進(jìn)行比對。如果數(shù)據(jù)庫記錄執(zhí)行過的腳本記錄,與項(xiàng)目中的sql腳本不一致,F(xiàn)lyway會報(bào)錯(cuò)并停止項(xiàng)目執(zhí)行。

        4. 如果校驗(yàn)通過,則根據(jù)表中的sql記錄最大版本號,忽略所有版本號不大于該版本的腳本。再按照版本號從小到大,逐個(gè)執(zhí)行其余腳本。


        項(xiàng)目中使用Flyway

        首先,在pom文件中引入flyway的核心依賴包:

        1. 引入核心依賴包

         <dependency>
               <groupId>org.flywaydb</groupId>
               <artifactId>flyway-core</artifactId>
               <version>5.2.4</version>
        </dependency>

        這里使用5.2.4版本。經(jīng)測試7.0.0版本與目前我們使用的springboot版本有沖突,會導(dǎo)致flyway不執(zhí)行。因此我們盡量不要使用高版本的flyway。

        2. 配置文件

        簡單配置一個(gè)屬性即可使用

        # flyway 配置
         spring:
           flyway:
             # 啟用或禁用 flyway
             enabled: true
             # flyway 的 clean 命令會刪除指定 schema 下的所有 table, 生產(chǎn)務(wù)必禁掉。這個(gè)默認(rèn)值是 false 理論上作為默認(rèn)配置是不科學(xué)的。
             clean-disabled: true
             # SQL 腳本的目錄,多個(gè)路徑使用逗號分隔 默認(rèn)值 classpath:db/migration
             locations: classpath:db/migration
             #  metadata 版本控制信息表 默認(rèn) flyway_schema_history
             table: flyway_schema_history
             # 如果沒有 flyway_schema_history 這個(gè) metadata 表, 在執(zhí)行 flyway migrate 命令之前, 必須先執(zhí)行 flyway baseline 命令
             # 設(shè)置為 true 后 flyway 將在需要 baseline 的時(shí)候, 自動執(zhí)行一次 baseline。
             baseline-on-migrate: true
             # 指定 baseline 的版本號,默認(rèn)值為 1, 低于該版本號的 SQL 文件, migrate 時(shí)會被忽略
             baseline-version: 1
             # 字符編碼 默認(rèn) UTF-8
             encoding: UTF-8
             # 是否允許不按順序遷移 開發(fā)建議 true  生產(chǎn)建議 false
             out-of-orderfalse
             # 需要 flyway 管控的 schema list,這里我們配置為flyway  缺省的話, 使用spring.datasource.url 配置的那個(gè) schema,
             # 可以指定多個(gè)schema, 但僅會在第一個(gè)schema下建立 metadata 表, 也僅在第一個(gè)schema應(yīng)用migration sql 腳本.
             # 但flyway Clean 命令會依次在這些schema下都執(zhí)行一遍. 所以 確保生產(chǎn) spring.flyway.clean-disabled 為 true
             schemas: flyway
             # 執(zhí)行遷移時(shí)是否自動調(diào)用驗(yàn)證   當(dāng)你的 版本不符合邏輯 比如 你先執(zhí)行了 DML 而沒有 對應(yīng)的DDL 會拋出異常
             validate-on-migrate: true

        flyway的properties配置清單(屬性未測試):

         # 對執(zhí)行遷移時(shí)基準(zhǔn)版本的描述.
         flyway.baseline-description
         #當(dāng)遷移時(shí)發(fā)現(xiàn)目標(biāo)schema非空,而且?guī)в袥]有元數(shù)據(jù)的表時(shí),是否自動執(zhí)行基準(zhǔn)遷移,默認(rèn)false.
         flyway.baseline-on-migrate =false
         #開始執(zhí)行基準(zhǔn)遷移時(shí)對現(xiàn)有的schema的版本打標(biāo)簽,默認(rèn)值為1.
         flyway.baseline-version=1
         #檢查遷移腳本的位置是否存在,默認(rèn)false.
         flyway.check-location=false
         #當(dāng)發(fā)現(xiàn)校驗(yàn)錯(cuò)誤時(shí)是否自動調(diào)用clean,默認(rèn)false.
         flyway.clean-on-validation-error=false
         #是否開啟flywary,默認(rèn)true.
         flyway.enabled=true
         #設(shè)置遷移時(shí)的編碼,默認(rèn)UTF-8.
         flyway.encoding
         #當(dāng)讀取元數(shù)據(jù)表時(shí)是否忽略錯(cuò)誤的遷移,默認(rèn)false.
         flyway.ignore-failed-future-migration
         #當(dāng)初始化好連接時(shí)要執(zhí)行的SQL.
         flyway.init-sqls
         #遷移腳本的位置,默認(rèn)db/migration.
         flyway.locations
         #是否允許無序的遷移,默認(rèn)false.
         flyway.out-of-order
         #目標(biāo)數(shù)據(jù)庫的密碼.
         flyway.password
         #設(shè)置每個(gè)placeholder的前綴,默認(rèn)${.
         flyway.placeholder-prefix
         #是否要被替換,默認(rèn)true.
         flyway.placeholder-replacementplaceholders
         #設(shè)置每個(gè)placeholder的后綴,默認(rèn)}.
         flyway.placeholder-suffix
         #設(shè)置placeholder的value
         flyway.placeholders.[placeholder name]
         #設(shè)定需要flywary遷移的schema,大小寫敏感,默認(rèn)為連接默認(rèn)的schema.
         flyway.schemas
         #遷移文件的前綴,默認(rèn)為V.
         flyway.sql-migration-prefix
         #遷移腳本的文件名分隔符,默認(rèn)__
         flyway.sql-migration-separator
         #遷移腳本的后綴,默認(rèn)為.sql
         flyway.sql-migration-suffix
         #使用的元數(shù)據(jù)表名,默認(rèn)為schema_version
         flyway.tableflyway
         #遷移時(shí)使用的目標(biāo)版本,默認(rèn)為latest version
         flyway.target
         #遷移時(shí)使用的JDBC URL,如果沒有指定的話,將使用配置的主數(shù)據(jù)源
         flyway.url
         #遷移數(shù)據(jù)庫的用戶名
         flyway.user
         #遷移時(shí)是否校驗(yàn),默認(rèn)為true
         flyway.validate-on-migrate

        flyway的yml配置清單(已測試,沒問題,推薦使用yml格式的配置文件)

         # flyway 配置
         spring:
           flyway:
             # 啟用或禁用 flyway
             enabled: true
             # flyway 的 clean 命令會刪除指定 schema 下的所有 table, 生產(chǎn)務(wù)必禁掉。這個(gè)默認(rèn)值是 false 理論上作為默認(rèn)配置是不科學(xué)的。
             clean-disabled: true
             # SQL 腳本的目錄,多個(gè)路徑使用逗號分隔 默認(rèn)值 classpath:db/migration
             locations: classpath:db/migration
             #  metadata 版本控制信息表 默認(rèn) flyway_schema_history
             table: flyway_schema_history
             # 如果沒有 flyway_schema_history 這個(gè) metadata 表, 在執(zhí)行 flyway migrate 命令之前, 必須先執(zhí)行 flyway baseline 命令
             # 設(shè)置為 true 后 flyway 將在需要 baseline 的時(shí)候, 自動執(zhí)行一次 baseline。
             baseline-on-migrate: true
             # 指定 baseline 的版本號,默認(rèn)值為 1, 低于該版本號的 SQL 文件, migrate 時(shí)會被忽略
             baseline-version: 1
             # 字符編碼 默認(rèn) UTF-8
             encoding: UTF-8
             # 是否允許不按順序遷移 開發(fā)建議 true  生產(chǎn)建議 false
             out-of-orderfalse
             # 需要 flyway 管控的 schema list,這里我們配置為flyway  缺省的話, 使用spring.datasource.url 配置的那個(gè) schema,
             # 可以指定多個(gè)schema, 但僅會在第一個(gè)schema下建立 metadata 表, 也僅在第一個(gè)schema應(yīng)用migration sql 腳本.
             # 但flyway Clean 命令會依次在這些schema下都執(zhí)行一遍. 所以 確保生產(chǎn) spring.flyway.clean-disabled 為 true
             schemas: flyway
             # 執(zhí)行遷移時(shí)是否自動調(diào)用驗(yàn)證   當(dāng)你的 版本不符合邏輯 比如 你先執(zhí)行了 DML 而沒有 對應(yīng)的DDL 會拋出異常
             validate-on-migrate: true

        spring.flyway.clean-disabled:這個(gè)屬性非常關(guān)鍵,它表示是否要清除已有庫下的表,如果執(zhí)行的腳本是 V1__xxx.sql,那么會先清除已有庫下的表,然后再執(zhí)行腳本,這在開發(fā)環(huán)境下還挺方便,但是在生產(chǎn)環(huán)境下就要命了,而且它默認(rèn)就是要清除,生產(chǎn)環(huán)境一定要自己配置設(shè)置為 true。

        3. 創(chuàng)建db/migration

        因?yàn)閒lyway默認(rèn)是讀取resources/db/migration下的文件夾,如果我們需要修改這個(gè)路徑,可以在配置文件中實(shí)現(xiàn)

        4. 編寫sql文件

        此處的SQL語句命名需要遵從一定的規(guī)范,否則運(yùn)行的時(shí)候flyway會報(bào)錯(cuò)。命名規(guī)則主要有兩種:

        • 僅需要被執(zhí)行一次的SQL命名以大寫的"V"開頭,后面跟上"0~9"數(shù)字的組合,數(shù)字之間可以用“.”或者下劃線"_"分割開,然后再以兩個(gè)下劃線 __ 分割,其后跟文件名稱,最后以.sql結(jié)尾。比如,V20210707__create_user.sql、V20210707__add_user.sql。

        • 可重復(fù)運(yùn)行的SQL,則以大寫的“R”開頭,后面再以兩個(gè)下劃線分割,其后跟文件名稱,最后以.sql結(jié)尾。。比如,R__truncate_user_dml.sql。

        其中,V開頭的SQL執(zhí)行優(yōu)先級要比R開頭的SQL優(yōu)先級高。

        V: 固定大寫

        20210707.01:20210707是日期,后面用.01代表序號

        因?yàn)閒lyway的執(zhí)行是有個(gè)順序的,比如你執(zhí)行了V2021__create_user,又執(zhí)行V2020_update_user。就會報(bào)錯(cuò),原因就是2020<2021。所以我們要保證序號是依次增大。

        Flyway 是如何比較兩個(gè) SQL 文件的先后順序呢?它采用 采用左對齊原則, 缺位用 0 代替 。舉幾個(gè)例子:

         1.0.1.1 比 1.0.1 版本高。
         1.0.10 比 1.0.9.4 版本高。
         1.0.10 和 1.0.010 版本號一樣高, 每個(gè)版本號部分的前導(dǎo) 0 會被忽略。

        __:這個(gè)是兩個(gè) _

        create_user是一個(gè)簡單的sql描述

        .sql:以.sql結(jié)尾的文件后綴是約定


         



        我們只要在數(shù)據(jù)庫中創(chuàng)建flyway這個(gè)數(shù)據(jù)庫,啟動項(xiàng)目,flyway就會執(zhí)行sql文件,創(chuàng)建user表,并且會自動生成一個(gè)flyway_schema_history表

        從這段啟動日志中,我們可以看到 Flyway 的執(zhí)行信息,數(shù)據(jù)庫腳本的執(zhí)行執(zhí)行,同時(shí)這里還說了,F(xiàn)lyway 還給創(chuàng)建了一個(gè) flyway_schema_history 表,這個(gè)表用來記錄數(shù)據(jù)庫的更新歷史。

        flyway_schema_history里面會去記錄sql文件的執(zhí)行記錄,每次啟動項(xiàng)目,都會去flyway_schema_history看sql是否執(zhí)行過,如果沒有執(zhí)行過,說明這個(gè)sql是新的sql,就會自動執(zhí)行,并且記錄到表里面。

        有了這條記錄,下次再啟動項(xiàng)目,V20210707.01、V20210707.02、V20210708.01 這個(gè)三個(gè)腳本文件就不會執(zhí)行了,因?yàn)橄到y(tǒng)知道這個(gè)腳本已經(jīng)執(zhí)行過了,如果你還想讓這些腳本再執(zhí)行一遍,需要手動刪除 flyway_schema_history 表中的對應(yīng)記錄,那么項(xiàng)目啟動時(shí),這個(gè)腳本就會被執(zhí)行了。

        R開頭的文件和V開頭的文件略有不同,R開頭的文件只要發(fā)送修改,都會執(zhí)行一遍。V開頭的文件如果執(zhí)行過一般,在發(fā)送修改,就會報(bào)錯(cuò)。為了控制版本,我們盡量使用V開頭的文件,這樣我們也可以很清楚的看到每個(gè)版本中的sql文件。


        常見問題

        • 問題1

        flyway遇到的問題Caused by: java.lang.ClassNotFoundException: org.flywaydb.core.api.callback.FlywayCallbac

        原因:springboot版本和flyway版本不一致,一般是flyway版本過高。

        解決辦法:將flyway的版本降到5.2.4就ok了

        • 問題2

        springboot 整合flyway 但是不生效,flyway不會自動執(zhí)行sql

        原因:如上

        原因2:項(xiàng)目中沒有配置數(shù)據(jù)庫,沒有引入sq依賴或者配置

        解決辦法:如上

        解決辦法2:引入sql依賴,在yml文件中配置sql信息

        • 問題3

        flyway出錯(cuò) FlywayException: Validate failed: Detected failed migration to version

        原因:sql腳本和數(shù)據(jù)庫中有沖突,需要檢查sql腳本哪里錯(cuò)了。簡單的說就是V開頭的sql文件,已經(jīng)執(zhí)行過了,在 flyway_schema_history 表里面有這個(gè)數(shù)據(jù),但是你又改動了sql文件,導(dǎo)致再次執(zhí)行的時(shí)候報(bào)錯(cuò)。

        解決辦法:新建一個(gè)sql文件,不要修改原來以V開頭的文件或者在flyway_schema_history表中找到文件相關(guān)執(zhí)行記錄,刪掉重新執(zhí)行。


        source: https://www.cnblogs.com/LoveBB/p/14983099.html

        喜歡,在看

        瀏覽 56
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評論
        圖片
        表情
        推薦
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            www.狠狠操| 日韩中文AV| 免费的黄色视频在线观看| 五月天丁香婷婷视频| 国产伦子伦一级A片免费看老牛| 日韩无码精品AV| 黄色录像一级带| 亚日韩在线| 久久综合久久鬼色| 久热中文在线观看精品视频| 少妇高潮一区二区三区99| 一级片操逼| 国产一级二级三级久久久| 国产在线一区二区三区四区 | 老熟女伦一区二区三区| 中文字幕99页| 中文字幕人妻系列| 中文字幕乱码中文字幕电视剧| 中文一区| 日韩精品一二三区| 中文字幕在线观看av| 热热色| av免费网站| 免费高清无码| 久久久久久麻豆| 中文无码高清在线| 嫩BBB槡BBBB槡BBBB二一| 国产成人69| 另类老妇性BBwBBw图片| 无码欧洲| 欧美成人三级在线观看| 五月天无码视频| 大香蕉尹人| 成人先锋AV| 大香蕉啪啪啪啪| 翔田千里无码免费播放| 久久黄色的| 国产精品一区二区不卡| 亚洲精品成a人在线观看| 日韩午夜| 一区二区三区精品| 五月天婷婷色播| 豆花视频在线播放| 一区二区三区精品无码| 看黄片网站| 九九无码视频| 欧美黄片免费看| 操综合| 大地资源第5页在线| 粉嫩99精品99久久久久| 美女黄色免费网站| 91麻豆国产| 欧美成人A片| 国产精品一级无码免费播放| 男女黄色免费网站| 日韩人妻丝袜中文字幕| 无码色色| www.超碰| 精品蜜桃秘一区二区三区观看| 福利视频在线| 精品尤物| 久久99老妇伦国产熟女| 美女一级变态毛片| 婷婷爱五月天| 激情五月伊人| 青娱乐久久| 91人妻人人澡人人精品| 欧美色啪| 影音先锋在线视频观看| 三级在线观看视频| 日韩性爱在线| 妹子色综合| 日韩福利网| 久久性爱网| 少妇人妻偷人精品无码视频新浪| 日韩免费性爱视频| 欧美激情视频一区二区| 91拍真实国产伦偷精品| 国产精品毛片一区视频播| 操小嫩逼视频| 日本性爱无码| 香蕉婷婷亚洲丁香| 91久久无码一区人妻A片蜜桃| 2022黄片| 国产乱子伦日B视频| 色色色91| 亚洲福利视频网站| 国产一区不卡| 午夜亚洲AV永久无码精品麻豆| 免费在线观看一区| 一级欧美一级日韩片| 人妻人人爽| 97超碰色| 亚洲婷婷五月天| 亚洲日韩中文字幕在线| 999精品视频| 无码一级片| 99成人电影| 国产精品一区二区在线观看| 亚洲成人日韩| 国产精品久久久久久久久A| 亚洲秘无码一区二区三区| 97人妻视频| 久久人操| 大香蕉综合视频| 久久久久三级片| 亚洲无码免费视频在线观看 | 午夜福利院| 国产在线观看mv免费全集电视剧大全| 精品伊人| 国产麻豆剧传媒精品国产AV| 美女操b| 亚洲最大的成人网站| 国产精品免费av在线| 亚洲狼人综合网| 婷婷伊人| 欧美老司机| 青青草在线播放| 逼特逼在线观看| 大鸡巴久久久久| 午夜激情五月天| 日韩大码无码| 91无码人妻一区二区| 亚洲在线中文字幕| 大香蕉尹人在看| 熟妇人妻中文字幕无码老熟妇| 麻豆蜜桃91无码| 老湿机福利视频| 成人激情视频A极| AAA成人| 国产高清在线观看| 久久b| 欧美在线免费观看| 亚洲视频456| 天堂AV在线免费观看| 久久久久久精品国产三级| 一区二区三区精品无码| 蜜桃视频网| 三级黄色免费网站| 亚洲AV成人片无码网站| 久久国产亚洲| 国产一级18片视频| 一级少女免费播放电视剧韩剧TV | 啊啊啊啊av| 亚州成人| 无码精品人妻一区二区| 色婷婷综合激情| 欧美精品在线免费| 福利视频二区| 蜜桃无码视频小说网站| 日本黄色小视频| 国产91丝袜在线播放| 乌克兰毛片| 曰韩精品| 先锋资源av| 日无码视频| www.天天干| 91AV电影网| gogogo高清在线完整免费播放韩国 | 日韩小视频| 特级欧美AAAAAA| 日韩欧美在线中文| 婷婷五月天网| 亚洲黄片在线| 精精品人妻一区二区三区| 一本一道久久综合| 天天日天天草| AV网站免费在线观看| 国产一级精品视频| 欧美熟妇性爱| 在线观看三级| 北条麻妃在线无码| 欧美性爱A| 大香蕉av在线| 一级性爽A√毛片| 成人黄色性视频| 蜜桃秘av一区二区三区安全| 人妻HDHDHD96XXXX| 综合+++夜夜| 伊人影院在线观看| 妹子色综合| 蜜臀色欲AV无码人妻| 国产熟妇码视频app| 国产三级黄色AV| 免费乱伦视频| 日本黄色精品| 国产三级片在线免费观看| 人人操人人妻人人爽| 高清无码毛片| 久久久久精| 怡红院成人在线| 天a堂8在线www| 国产乱子伦精品免费,| 成年人免费看视频| AV在线免费播放| 日本一区二区三区在线播放| 草比网站| 一本色道久久综合亚洲精东小说| 3d动漫精品一区二区三区在线观看 | 亚洲无码在线免费观看视频| 中文无码在线观看中文字幕av中文 | 91人妻人人澡人人爽人妻 | 伊人干综合| 亚洲免费一级| 97色吧| 国产中文字幕AV在线播放| 日韩精品电影| 久久婷婷国产综合| 色婷婷欧美在线播放内射| 国产亚洲色婷婷| 51妺嘿嘿午夜福利视频| 日韩AV在线直播| 另类罕见稀奇videos| 少妇4p| 天天爱夜夜爱| 操逼逼视频| 久久这里都是精品| 三级片男人的天堂| 日韩一级免费观看| 精品视频在线观看| 极品无码| 丁香五月网站| 99操99| 97这里只有精品| 欧美三级视频在线观看| 美女福利在线| 免费黄色小视频在线观看| 精品视频在线播放| 成人免费精品| 人妻熟女88AⅤ| 国产色天使| www香蕉成人片com| 69AV无码| 久久婷婷五月综合伊人| 91久久人澡人妻人人澡人人爽| 欧美色色色网| 在线观看中文字幕av| 色呦呦一区二区三区| 激情综合网站| 北京熟妇搡BBBB搡BBBB电影| 国产玖玖爱| 日逼网址| 色综合久久天天综合网| 午夜天堂精品久久久| 久久久久久久久久久国产精品| 激情人妻在线| 黄色日本视频| 黑人无码在线| 五月深爱| www.97超碰| 人人看人人澡| 色悠悠中文字幕| 北条麻妃在线精品| 午夜精品18视频国产17c| 日韩人妻无码专区| 日韩人妻无码中文字幕| 一区二区成人电影| 久久九热| AV福利在线观看| 亚洲AV秘无码不卡在线观看| 无码在线播放视频| 极品在线视频| 久久久www| 操逼视频免费观看| 国产一级18片视频| 欧美日韩免费在线观看| 国产精品无码白浆高潮| 人妻天天干| 黄色A片电影| 久久精品免费电影| 男人视频网站| 成人欧美一区二区三区在线观看 | 国产成人网| 无码视频观看| 中文无码日本一级A片久久影视| 久久噜| 亚洲无码视频免费| 天天看天天摸| 91吴梦梦一区二区传媒| 成人片免费| 日韩不卡AV| 亚洲色欲av| 五月天黄色片| 亚洲AV成人电影| 无码直播| 欧美亚洲操逼视频| 粉嫩99精品99久久久久久特污| 亚洲videos| 亚洲乱乱| 91亚洲日韩| 无码人妻AV一区| 亚洲一二三四区| 日韩欧美91| 中国AV网| 丁香五月天激情网| 草草影院CCYYCOM屁屁影院合集限制影院 | 超碰乱伦| 免费在线a| 成人黄色在线观看| 日韩不卡| 日韩中文毛片| 亚洲国产黄片| 91天天综合在线| 欧美爱爱免费看| 日韩最新高清无码| 天天做天天日| 大香蕉伊人色| 91精品久| 久久久久麻豆V国产精华液好用吗| 中文不卡在线| 欧美黄片一区| 古装一级无遮挡A片| 婷婷五月情| 亚洲女人被黑人巨大进入| 免费草逼视频| 高清无码三级片| 成人免费A片| 亚洲草比视频网| 做aAAAAA免费视频| 人人操日本| 先锋影音资源一区| 我想看操逼| 91九色91蝌蚪91成人| 亚洲第一黄网| 操老女人的逼| 五月天婷婷在线观看| 日本操B| 亚洲精品综合| 成人在线观看网| 欧美+日产+中文| 欧美日韩一区在线观看| 最新中文字幕在线观看视频| 欧美一级免费观看| 免费一级电影| 日韩在线观看免费| 91黄色在线视频| www.91在线视频| 亚洲天堂影音先锋| 艳妇乳肉豪妇荡乳AV无码福利| 日韩色区| 中文无码在线播放| 青青草免费在线视| 啪啪成人视频| 18啪啪网站| 美女福利在线| 日韩二区三区| 亚洲中文字幕久久日| 日韩成人无码特集| 最新毛片网站| 无码影音| 国产乱伦电影| 五月丁香综合久久| 色99在线| 毛片在线免费| 91AV| 激情五月天婷婷| 久久久久亚洲AV成人片乱码| 日韩高清无码观看| 大茄子熟女AV导航| 成人网站视频在线观看| 免费看欧美成人A片| 黄色免费网| 精品伊人| 国产乱国产乱300精品| 国产日韩欧美在线观看| 精品免费黄色视频| 天天艹天天干| 国产熟妇婬乱A片免费看牛牛| 超碰人妻在线| 天天操夜夜操视频免费高清| 午夜91| 无码AV一区| 成人A毛片| 国产在线色视频| 亚洲无码av电影| 麻豆乱伦视频| 国内自拍第一页| 欧美日韩A片欧美日| 免费黄色一级视频| 无码人妻精品一区二区蜜桃91 | 晚上碰视频| 丁香五月激情五月| 永井玛丽亚av无码中出流出| 免费视频久久久| 国产精品AV在线观看| 久久丝袜| 极品在线视频| 日韩一级片免费看| jizz在线观看视频| 超碰a片| 自拍偷拍一区二区| 性爱视频网址| 在线看毛片网站| 丰满岳乱妇一区二区三区全文阅读 | 亚洲中文字幕一区二区| 色婷婷激情五月天| 婷婷国产成人精品视频| 91精品人妻一区二| 99九九99九九九99九他書對| 日韩无码不卡视频| 国产美女操逼| 91视频首页| 豆花视频成人版www满18| 欧美日韩在线免费观看| 中文字幕人妻丝袜二区电影| 久久这里只有精品99| 老师机性爱视频在线播放| 欧美成人三级在线播放| 欧美亚洲成人在线| 国产在线色视频| 亚洲中文字幕在线看| 人人妻人人澡| 强伦轩一区二区三区在线观看| 操逼视频在线播放| 欧美三级欧美一级| 臭小子晚上让你爽个够视频| 亚洲高清国产欧美综合s8| 亚洲网站免费观看| 18禁在线| 国产av日韩av| 伊人久久大| 亚欧美日韩| 亚洲无码大全| 久久99精品国产麻豆婷婷洗澡| 色色影音先锋| 大香蕉伊人在线视频| 伊人影院99| 四川少妇BBB| 国内无码视频| 午夜精品18视频国产17c| 乱人伦欲国语对白| 爱爱视频欧美| 啪啪A片| 韩国精品在线| 少妇搡BBBB搡BBB搡打电话| 蜜芽成人网站| 成人免费毛片果冻日本| 国产无遮挡| 操逼视频免费| 操逼三级| 91在线无码精品国产三年| 国产精品高潮呻吟久久| 88AV视频| 中文字幕在线免费播放| 国产精品超碰| 午夜操逼网| 最新日韩在线| 欧美色视频在线观看| 青青草做爱视频| 99精品丰满人妻无码| 女人一区二区| 色色五月天婷婷| 色欲色欲一区二区三区| 肏屄在线视频| 亚洲AV秘无码不卡在线观看| 日韩人妻精品中文字幕免费 | 大鸡巴网站| 五月天成人小说| 欧美黄片免费视频| 无码成人午夜在线影院| 干少妇视频| 国产成人免费在线| 成人自拍视频在线| 成人在线免费观看视频| 人人妻人人澡人人爽人人爽| 加勒比黑人和翔田千里在线播放| 熟女综合| 99视频在线免费| 国产一区二区三区免费播放| 97久久超碰| 中文字幕av在线播放| 成人黄色视频网站在线观看| 国产一级a毛一级a做免费的视频| 天天色情| 日本高清久久| 国产无码一区二区三区| 欧美一级棒| 美女毛片网站| 一级生活片| 日韩在线成人视频| 欧美久草蜜桃视频| 久久久久久亚洲AV无码专区 | av乱伦小说| 久色视频福利| 午夜福利免费| 在线观看中文字幕一区| 91久久爽久久爽爽久久片| 国产一级AV片| 特级黄色A片| 日韩黄色电影在线观看| 国内精品一区二区三区| 99精品一区二区| 黄色片视频网站| 日日骚av一区二区三区| 国产一区二区三区视频在线| 欧美精品99| 久久午夜福利电影| 亚洲无码在线资源| 东京热精品| 亚洲综合影院| 成年片免费观看网站免费观看,亚洲+欧... | 日本免费福利视频| 水蜜桃一区| 一级黄色操逼视频| 91日韩视频在线| 欧美自拍视频| 爱爱爱免费视频| 亚洲无码视频在线免费观看| 五月天亚洲激情| 2014天堂网| 日韩欧美中文字幕在线视频| 日本少妇性爱视频| 免费无码视频| av水果派| 手机在线看A片| 成人在线无码视频| 亚洲高清视频一区| 亚洲第一福利视频| 伊人综合网站| 一级黄色影院| 青娱乐青青草| 国产91精品看黄网站在线观看| 色图15p| 欧美A级黄片| 免费黄色成人网站| 亚洲无码精品在线观看| 五月丁香婷婷基地| 亚洲日韩AV电影| 国产福利在线视频| 国产精品网站在线观看| 成人动漫在线观看| 熟女熟妇人妻一区二区三区| 色天堂视频在线观看| 国产欧美熟妇另类久久久| 五月天伊人| 三级片亚洲无码| 国产一区视频18| 五月色婷婷撸| 三级网站在线播放| 久久伊人精品| 刘玥一区二区三区| 欧美狠狠插| 免费+无码+精品| 日韩码线观看视频| 91综合娱乐| 操网站| 安微妇搡BBBB搡BBBB| 亚洲少妇人妻| 蝌蚪窝在线视频观看| 国产乱伦片、| 国产高清AV| 欧美A片视频| 亚洲一区二区三| 成人无遮挡| 国产高清成人| 性色在线| 亚洲无码AV免费观看| 青青精品视频| 成人国产精品免费观看| 在线观看免费黄色视频| 欧美日本黄色| 亚洲自拍电影| 中文字幕黄色| 色视频免费在线观看| 日韩无码2024| 在线免费亚洲| 男女高清无码| 欧美日逼小视频| 人人操超碰| 黄色片在线免费观看| 欧美手机在线视频| 日韩拍拍| 久久综合热| 国产精品视频福利| 国产成人高清无码| 一级黄色录像带| 亚洲操B视频| 一级黄影| 日韩无码精品一区二区三区| 又黄又湿的视频| 国产精品宾馆在线| 免费伊人大香蕉| 熟女熟妇人妻一区二区三区| 日韩无码视频一区二区| 男女一区二区三区| 91大神在线免费观看| 无码中文综合成熟精品AV电影| 国产精品中文字幕在线观看| 91色色影院| 亚洲婷婷在线| 成人做爰A片一区二区app| 色图欧美色图| 国产无码在线看| 69成人免费视频| 偷拍欧美日韩| 老湿机福利视频| 日韩毛片在线播放| 台湾一区二区| 国产91探花秘入口| 99热99在线| 丁香花小说完整视频免费观看| 亚洲在线视频免费观看| 人妻人人操人人爽| 一区日韩| 乱伦三区| www操逼| 影音先锋成人AV| 久久高清免费视频| 操逼国产| 免费无码在线看| 亚洲va综合va国产va中文| 加勒比日韩无码| 影音先锋女人aV鲁色资源网站| 大香焦伊人国产| 一卡二卡在线视频| 阿v视频在线观看| 亚洲秘无码一区二区三区| 国产精品永久久久久久久久久 | 国产久久久| 最美孕交vivoestv另类| 思思热精品在线| 一道本激情视频| 无码另类| 无码一区视频| 黄色电影一区二区| 人人干干| 大香蕉伊人在线观看视频| 免费黄色一级片| www.啪啪| 国产P片内射天涯海角| 99久久婷婷国产综合精品青牛牛 | 久久久久伊人| 日韩精品成人无码| 日韩人妻一区二区| AⅤ中文字幕在线免费观看| 手机AV网站| 欧美一级日韩三级| 国内超碰| AV福利在线观看| 色逼综合| 日本爱爱网站| 久久久性爱| 欧美一区三区视频z| 一卡二卡在线视频| 呦小性Free小U女HD| 天天草天天干| 国产一二三视频| 国产精品久久777777| 欧美久久国产精品| 一级aa免费视频| 亚洲日韩免费| 久久国内| 五月伊人网| 免费高清无码| 成人黄色一级| 红桃91人妻爽人妻爽| 午夜资源网| 黄色影院在线观看| 国产强伦轩免费视频在线| 五月天婷婷在线无码| 天天色人人| 亚洲色婷婷五月天| 免费观看黄色片| 成人在线免费| 欧美成人精品A片免费一区99| 97久久综合| www.日本色| 九九精品热| 欧美性爱香蕉视频| 日韩人成| 日本高清不卡视频| 国产成人毛片| 久久欧洲成人精品无码区| 免费的a片| 国产操逼免费视频| 在线视频一区二区三区| 嫩草视频在线观看免费网站| 国产一级二级三级久久久| 91精品无码视频| 瑟瑟视频在线观看| 操你啦青青草| 青青草原在线视频免费观看| 自拍乱伦| 97福利视频| 大香焦伊人国产| 2019人人操| 臭小子啊轻点灬太粗太长了的视频| 永久免费看A人片无码精| 丝袜三级片| 国产一级A片久久久免费看快餐| 婷婷涩嫩草鲁丝久久午夜精品| 免费观看成人毛片A片直播千姿| 久久精品黄色| 日韩人妻一区二区三区| 欧美精品无码一区二区| 国产网友自拍| 精品一区二区三区四区视频| 2025最新国产精品每日更新| 亚洲一区2区| 天天综合网久久综合网| 欧美操B电影| 日韩精品极品视频在线观看免费 | 婷婷情色| 日韩午夜成人电影| 影音先锋人妻资源| 四川少妇搡bbw搡bbbb| 国产一级片在线播放| 中文字幕淫乱视频欧美| 成人一区在线观看| 国产青青| 黄色视频免费在线看| 开心五月激情婷婷| 丁香五月天激情| 久久久久女人精品毛片九一| 台湾一区二区| 亚洲国产精品成人综合色五月 | 亚洲黄色在线观看| 欧美日韩国产免费观看成人片| 午夜精品久久久久久久| 性爱无码AV| 天天插一插| 国产黄色在线观看| 成人在线一区二区三区| 欧美成人无码A片免费| 大香蕉亚洲网| 91精品国产日韩91久久久久久 | 国产无套内射视频| 国外成人视频| 亚洲色婷婷五月天| 青娱乐精品视频| 手机看片国产| 免费观看av| 高清无码视频直接看| 中文字幕AV播放| 一区二区三区小视频| 先锋成人AV| 骚逼中文字幕| 极品久久| 一级国产黄色视频| 日皮在线观看| 亚洲精品中文字幕在线| 久激情内射婷内射蜜桃欧美一级| 日日干夜夜撸| 91香蕉国产视频| 亚洲激情综合| 婷婷五月天色播| 日日爽夜夜爽| 日韩欧美视频在线播放| 综合夜夜| 国产—级a毛—a毛免费视频| 天天舔天天日| 日B视频网站| 高清无码一区二区三区四区| 国产女人水真多18毛片18精品| 毛片在线观看网站| 大香蕉AV电影| 3D动漫精品啪啪一区二区下载| 91香蕉网站| 日韩精品成人无码| 人人妻人人上| 亚洲中文字| 国产97在线视频| 日韩黄色片| 久热在线精品视频| 欧美一区二区丁香五月天激情| 午夜精品久久久| 国产精品欧美性爱| 黄色激情视频网站| 高清无码小视频| 色色成人网| 日韩免费a| 大吊无码| 中文字幕日本无码| 最新国产第一页| 久久婷婷亚洲| 91人妻人人澡人人爽人人精品一| 亚洲女人被黑人巨大进入| 日本在线观看www| 欧美视频免费| 国产操逼免费视频| 水多多成人网站A片| 青春草在线观看视频| 麻豆秘在线观看国产| 日韩免费在线| 一级黄色电影免费观看| 五月天四房播播| 国产日韩精品无码去免费专区国产| 精品欧美成人片在线| www.四虎成人网站| 91丨九色丨熟女新版| 91麻豆精品国产91久久久久久久久| 日韩操逼网站| 特级西西人体www高清大胆| 四虎精品一区二区三区| 七七久久| 丰满的人妻一区二区10| 久久99精品视频| 一区二区三区电影网| 日韩高清一级免费| 亚洲操b| 韩国三级HD久久精品| 国产另类自拍| 精品A片| 91精品在线观看视频| 蜜芽av在线观看| 欧美色图在线播放| 久久99国产乱子伦...| 人操人人人操| 青青国产| 成人黄色av| 免费人成视频观看| 在线观看国产| 国产精品1区| 成人一区二区在线观看| 成人做爰100片免费-百度| 亚洲天堂一区二区三区| 成人福利视频在线观看| 欧美成人精品一级| 五月天福利导航| 丁香五月婷婷在线| 中文无码高清视频| 一本一道久久a久久精品综合| 五十路无码| 精品蜜桃秘一区二区三区在线播放| 国产aaaaaaaaaaaaa| 狠狠综合| 亚洲日韩第一页| 婷婷精品在线视频| 免费看黄色的网站| 手机免费Av| 少妇搡BBBB搡BBBB毛多多| 欧美伊人大香蕉| 天天插天天拍| 亚洲日日干| 影音先锋一区| 91麻豆精品传媒国产| 中文区中文字幕免费看| 国产AV剧情| 久久国产精品伦子伦| 黄网站免费观看| 欧美AAAAAA| 狠狠插狠狠操| 日本无码精品| 国产精品久久久久久最猛| 国产九九九| 伊人无码视频| 热热AV| www.黄色com| a片网站在线观看| 青娱乐国产AV| 欧美性爱在线| 人妻视频网站| 亚洲久草| 91av免费| 亚洲综合在线播放| 超碰在线人人爱| 国产性受XXXXXYX性爽| 老司机AV91| 人人爽人人操| 欧美a视频| 2017天天干| 免费在线观看黄色片| 日韩性爱小说| 黄色免费视频| 免费看黄视频| 牛牛精品一区二区AV| 黄网国产手机在线观看| 欧亚毛片| 久久精品三级片| 免费的A片| 第一福利成人AV导航| 亚洲AV无码国产综合专区| 69人妻人人澡人人爽久久| 亚洲AV女人18毛片水真多| 色老板av| 亚洲一区自拍| 婷婷激情中文字幕| 欧美日韩免费在线播放电影在线播放电影在线播放电影免费 | 91婷婷| 成人免费无码婬片在线| 国产精品无码永久免费不卡| 西西444WWW无码大胆| 特级A级毛片| XXXXⅩHD亚洲人HD| 亚洲精品成人无码AV在线| 美女免费AV| 五月天婷婷网站| 米奇狠狠干| 俺来也俺去也www色官| 精品一区二区三区无码| 51成人精品午夜福利| 97色碰| 五月丁香婷婷开心| 色色色色网| 91视频熟女| 欧美亚洲综合在线观看| 中文字幕日本电影| 中文无码精品欧美日韩| 黄色网址av| 女BBBBBB女BBB|