jjclane/laravel-sqlite-migrations

A trait to translate Laravel migrations into SQLite safe migrations.

Installs: 15 706

Dependents: 0

Suggesters: 0

Security: 0

Stars: 13

Watchers: 3

Forks: 4

Open Issues: 1

Type:laravel-package

0.2.0 2023-10-21 04:48 UTC

This package is auto-updated.

Last update: 2024-09-21 06:36:19 UTC


README

A trait to translate Laravel migrations into SQLite safe migrations. This avoids the Cannot add a NOT NULL column with default value NULL issue that you receive when trying to add a non-nullable column to an existing table in a migration by initially adding the column as nullable and then modifying the column in a separate migration. It also maps Laravel datatypes that aren't supported in SQLite to avoid this.

Installation

composer require jjclane/laravel-sqlite-migrations --dev

How to use

<?php

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
use JJCLane\SQLiteMigration\TransformMigration;

class AddColumnToTable extends Migration
{
    use TransformMigration;

    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        $this->table('table', function (Blueprint $table) {
            // Normal migrations
            $table->decimal('my_col', 10, 1)->unsigned()->after('my_other_col');
        });
        
        // or if you prefer to be more explicit
        $this->transformMigration('table', function (Blueprint $table) {
            // Normal migrations
            $table->decimal('my_col', 10, 1)->unsigned()->after('my_other_col');
        });
    }
}