Rumah rangka kerja php Laravel 避坑!Laravel数据库迁移功能的一个坑

避坑!Laravel数据库迁移功能的一个坑

Jun 11, 2021 am 11:51 AM
laravel php

下面由laravel教程栏目给大家介绍Laravel 数据库迁移功能的一个坑,希望对需要的朋友有所帮助!

  • 环境:Laravel 8
  • 需求用到 Laravel 数据库迁移功能,因本人是强迫症处女座所以喜欢自己命名文件例如:

5d3874c23d044f1817eb1b777eb7e19.png

  • 但是在执行迁移的时候报错:

1844569bda86fd5ece67669e3873ee6.png

  • 经过几轮尝试发现 Laravel 对迁移文件的 文件名命名格式 是有固定的解析的,所以当我文件名完全按照它的风格去写的时候就正常运行了

953ceb06f327197cafa96488262c1cd.png

  • 当然类名也必须统一:

1bbc405611a1944e0380f468c504d18.png

  • 吐槽的点在于:文档中并没有提及文件名称命名风格的强制要求 故今天记录下此小坑
  • 貌似是另一个坑或者说是框架的不足:那就是表结构 没办法持续集成,例如今天我需要对某个表加字段,但此时已经迁移过了,那就会 没办法再次运行同一个迁移文件必须要创建新的迁移文件,当然这我也理解这是为了方便回滚,但是我的需求就是为了新功能而持续加字段,并不需要回滚,所以我的 解决方案 就是每次都清空 migrations 这张表,因为这张表就是控制能否反复运行同一个迁移文件的地方,代码如下:
trait Trait_Migrate
{
    /**
     * @desc 数据表:初始化
     * @return Void
     */
    static public function CI_Table_Structure() : Void
    {
        # 清空记录表以保证能持续迁移
        DB::table( 'migrations' ) -> truncate();
        # 执行迁移
        Artisan::call( 'migrate --force --path=/database/migrations/' . SELF::$CI_File );
    }

}
Salin selepas log masuk
  • 总的来说完全按照框架文档的规则来就会一帆风顺,可是做项目遇到框架默认功能无法满足需求的情况是非常正常的

相关推荐:最新的五个Laravel视频教程

Atas ialah kandungan terperinci 避坑!Laravel数据库迁移功能的一个坑. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah pemalsuan permintaan lintas tapak (CSRF) dan bagaimana anda melaksanakan perlindungan CSRF di PHP? Apakah pemalsuan permintaan lintas tapak (CSRF) dan bagaimana anda melaksanakan perlindungan CSRF di PHP? Apr 07, 2025 am 12:02 AM

Dalam PHP, anda boleh mencegah serangan CSRF dengan menggunakan token yang tidak dapat diramalkan. Kaedah khusus termasuk: 1. Menjana dan membenamkan token CSRF dalam bentuk; 2. Sahkan kesahihan token semasa memproses permintaan.

Terangkan jenis yang ketat (mengisytiharkan (strict_types = 1);) dalam php. Terangkan jenis yang ketat (mengisytiharkan (strict_types = 1);) dalam php. Apr 07, 2025 am 12:05 AM

Jenis yang ketat dalam PHP didayakan dengan menambah mengisytiharkan (strict_types = 1); di bahagian atas fail. 1) Ia memaksa jenis pemeriksaan parameter fungsi dan pulangan nilai untuk mengelakkan penukaran jenis tersirat. 2) Menggunakan jenis yang ketat dapat meningkatkan kebolehpercayaan dan kebolehprediksi kod, mengurangkan pepijat, dan meningkatkan kebolehkerjaan dan kebolehbacaan.

Bagaimanakah anda dapat mengelakkan kelas daripada dilanjutkan atau kaedah yang ditindas dalam PHP? (kata kunci akhir) Bagaimanakah anda dapat mengelakkan kelas daripada dilanjutkan atau kaedah yang ditindas dalam PHP? (kata kunci akhir) Apr 08, 2025 am 12:03 AM

Dalam PHP, kata kunci akhir digunakan untuk mencegah kelas daripada diwarisi dan kaedah ditimpa. 1) Apabila menandakan kelas sebagai muktamad, kelas tidak boleh diwarisi. 2) Apabila menandakan kaedah sebagai muktamad, kaedah itu tidak boleh ditulis semula oleh subkelas. Menggunakan kata kunci akhir memastikan kestabilan dan keselamatan kod anda.

Masa Depan PHP: Adaptasi dan Inovasi Masa Depan PHP: Adaptasi dan Inovasi Apr 11, 2025 am 12:01 AM

Masa depan PHP akan dicapai dengan menyesuaikan diri dengan trend teknologi baru dan memperkenalkan ciri -ciri inovatif: 1) menyesuaikan diri dengan pengkomputeran awan, kontena dan seni bina microservice, menyokong Docker dan Kubernetes; 2) memperkenalkan pengkompil JIT dan jenis penghitungan untuk meningkatkan prestasi dan kecekapan pemprosesan data; 3) Berterusan mengoptimumkan prestasi dan mempromosikan amalan terbaik.

Laravel fasih orm dalam carian model separa Bangla) Laravel fasih orm dalam carian model separa Bangla) Apr 08, 2025 pm 02:06 PM

Pengambilan Model Laraveleloquent: Mudah mendapatkan data pangkalan data Eloquentorm menyediakan cara ringkas dan mudah difahami untuk mengendalikan pangkalan data. Artikel ini akan memperkenalkan pelbagai teknik carian model fasih secara terperinci untuk membantu anda mendapatkan data dari pangkalan data dengan cekap. 1. Dapatkan semua rekod. Gunakan kaedah semua () untuk mendapatkan semua rekod dalam jadual pangkalan data: USEAPP \ MODELS \ POST; $ POSTS = POST :: SEMUA (); Ini akan mengembalikan koleksi. Anda boleh mengakses data menggunakan gelung foreach atau kaedah pengumpulan lain: foreach ($ postsas $ post) {echo $ post->

Geospatial Laravel: Pengoptimuman peta interaktif dan sejumlah besar data Geospatial Laravel: Pengoptimuman peta interaktif dan sejumlah besar data Apr 08, 2025 pm 12:24 PM

Cecair memproses 7 juta rekod dan membuat peta interaktif dengan teknologi geospatial. Artikel ini meneroka cara memproses lebih dari 7 juta rekod menggunakan Laravel dan MySQL dan mengubahnya menjadi visualisasi peta interaktif. Keperluan Projek Cabaran Awal: Ekstrak Wawasan berharga menggunakan 7 juta rekod dalam pangkalan data MySQL. Ramai orang mula -mula mempertimbangkan bahasa pengaturcaraan, tetapi mengabaikan pangkalan data itu sendiri: Bolehkah ia memenuhi keperluan? Adakah penghijrahan data atau pelarasan struktur diperlukan? Bolehkah MySQL menahan beban data yang besar? Analisis awal: Penapis utama dan sifat perlu dikenalpasti. Selepas analisis, didapati bahawa hanya beberapa atribut yang berkaitan dengan penyelesaiannya. Kami mengesahkan kemungkinan penapis dan menetapkan beberapa sekatan untuk mengoptimumkan carian. Carian Peta Berdasarkan Bandar

PHP vs Python: Memahami Perbezaan PHP vs Python: Memahami Perbezaan Apr 11, 2025 am 12:15 AM

PHP dan Python masing -masing mempunyai kelebihan sendiri, dan pilihannya harus berdasarkan keperluan projek. 1.Php sesuai untuk pembangunan web, dengan sintaks mudah dan kecekapan pelaksanaan yang tinggi. 2. Python sesuai untuk sains data dan pembelajaran mesin, dengan sintaks ringkas dan perpustakaan yang kaya.

Status Semasa PHP: Lihat trend pembangunan web Status Semasa PHP: Lihat trend pembangunan web Apr 13, 2025 am 12:20 AM

PHP tetap penting dalam pembangunan web moden, terutamanya dalam pengurusan kandungan dan platform e-dagang. 1) PHP mempunyai ekosistem yang kaya dan sokongan rangka kerja yang kuat, seperti Laravel dan Symfony. 2) Pengoptimuman prestasi boleh dicapai melalui OPCACHE dan NGINX. 3) Php8.0 memperkenalkan pengkompil JIT untuk meningkatkan prestasi. 4) Aplikasi awan asli dikerahkan melalui Docker dan Kubernet untuk meningkatkan fleksibiliti dan skalabiliti.

See all articles