GithubHelp home page GithubHelp logo

awssat / laravel-sync-migration Goto Github PK

View Code? Open in Web Editor NEW
106.0 4.0 11.0 34 KB

Developer tool helps to sync migrations without refreshing the database

License: MIT License

PHP 100.00%
laravel laravel-package laravel-migration php database-migrations laravel-schema laravel-datatables database migration ico

laravel-sync-migration's People

Contributors

abdumu avatar bsn4 avatar ecointest avatar timmy1420 avatar yuhal avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

laravel-sync-migration's Issues

Problem to install via composer

I get this error of composer when I try install laravel sync migration with composer:

Using version ^0.1.3 for awssat/laravel-sync-migration
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Installation request for awssat/laravel-sync-migration ^0.1.3 -> satisfiable by awssat/laravel-sync-migration[0.1.3].
    - Conclusion: remove laravel/framework v5.5.45
    - Conclusion: don't install laravel/framework v5.5.45
    - awssat/laravel-sync-migration 0.1.3 requires illuminate/support 5.6.* || 5.7.* || 5.8.* -> satisfiable by illuminate/support[5.7.17, 5.7.18, 5.7.19, v5.6.0, v5.6.1, v5.6.10, v5.6.11, v5.6.12, v5.6.13, v5.6.14, v5.6.15, v5.6.16, v5.6.17, v5.6.19, v5.6.2, v5.6.20, v5.6.21, v5.6.22, v5.6.23, v5.6.24, v5.6.25, v5.6.26, v5.6.27, v5.6.28, v5.6.29, v5.6.3, v5.6.30, v5.6.31, v5.6.32, v5.6.33, v5.6.34, v5.6.35, v5.6.36, v5.6.37, v5.6.38, v5.6.39, v5.6.4, v5.6.5, v5.6.6, v5.6.7, v5.6.8, v5.6.9, v5.7.0, v5.7.1, v5.7.10, v5.7.11, v5.7.15, v5.7.2, v5.7.20, v5.7.21, v5.7.22, v5.7.23, v5.7.26, v5.7.27, v5.7.28, v5.7.3, v5.7.4, v5.7.5, v5.7.6, v5.7.7, v5.7.8, v5.7.9, v5.8.0, v5.8.11, v5.8.12, v5.8.14, v5.8.15, v5.8.17, v5.8.18, v5.8.19, v5.8.2, v5.8.20, v5.8.22, v5.8.3, v5.8.4, v5.8.8, v5.8.9].
    - don't install illuminate/support 5.7.17|don't install laravel/framework v5.5.45
    - don't install illuminate/support 5.7.18|don't install laravel/framework v5.5.45
    - don't install illuminate/support 5.7.19|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.6.0|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.6.1|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.6.10|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.6.11|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.6.12|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.6.13|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.6.14|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.6.15|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.6.16|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.6.17|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.6.19|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.6.2|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.6.20|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.6.21|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.6.22|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.6.23|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.6.24|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.6.25|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.6.26|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.6.27|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.6.28|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.6.29|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.6.3|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.6.30|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.6.31|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.6.32|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.6.33|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.6.34|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.6.35|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.6.36|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.6.37|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.6.38|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.6.39|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.6.4|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.6.5|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.6.6|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.6.7|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.6.8|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.6.9|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.7.0|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.7.1|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.7.10|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.7.11|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.7.15|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.7.2|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.7.20|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.7.21|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.7.22|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.7.23|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.7.26|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.7.27|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.7.28|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.7.3|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.7.4|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.7.5|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.7.6|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.7.7|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.7.8|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.7.9|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.8.0|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.8.11|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.8.12|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.8.14|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.8.15|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.8.17|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.8.18|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.8.19|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.8.2|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.8.20|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.8.22|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.8.3|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.8.4|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.8.8|don't install laravel/framework v5.5.45
    - don't install illuminate/support v5.8.9|don't install laravel/framework v5.5.45
    - Installation request for laravel/framework (locked at v5.5.45, required as 5.5.*) -> satisfiable by laravel/framework[v5.5.45].


Installation failed, reverting ./composer.json to its original content.

My composer.json file:

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": ">=7.0.0",
        "fideloper/proxy": "~3.3",
        "laravel/framework": "5.5.*",
        "laravel/tinker": "~1.0",
        "barryvdh/laravel-dompdf": "^0.8.4",
        "lucascudo/laravel-pt-br-localization": "^1.0"
    },
    "require-dev": {
        "filp/whoops": "~2.0",
        "fzaninotto/faker": "~1.4",
        "mockery/mockery": "~1.0",
        "phpunit/phpunit": "~6.0",
        "symfony/thanks": "^1.0"
    },
    "autoload": {
        "classmap": [
            "database/seeds",
            "database/factories"
        ],
        "psr-4": {
            "App\\": "app/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },
    "extra": {
        "laravel": {
            "dont-discover": [
            ]
        }
    },
    "scripts": {
        "post-root-package-install": [
            "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "@php artisan key:generate"
        ],
        "post-autoload-dump": [
            "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
            "@php artisan package:discover"
        ]
    },
    "config": {
        "preferred-install": "dist",
        "sort-packages": true,
        "optimize-autoloader": true
    }
}

My php version is 7.3.4

Can't install in Laravel 8

Can't install this package in existing Laravel 8 project. Even in a fresh Laravel 8 installation.

Terminal output:

Running composer update awssat/laravel-sync-migration
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

Problem 1
- Root composer.json requires awssat/laravel-sync-migration ^0.2.0 -> satisfiable by awssat/laravel-sync-migration[0.2.0].
- awssat/laravel-sync-migration 0.2.0 requires illuminate/support 5.6.* || 5.7.* || 5.8.* || ^6.0|| ^7.0 -> found illuminate/support[v5.6.0, ..., 5.8.x-dev, v6.0.0, ..., 6.x-dev, v7.0.0, ..., 7.x-dev] but it conflicts with another require.

Composer.json

{
"name": "laravel/laravel",
"type": "project",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"require": {
"php": "^7.3|^8.0",
"fideloper/proxy": "^4.4",
"fruitcake/laravel-cors": "^2.0",
"guzzlehttp/guzzle": "^7.0.1",
"intervention/image": "^2.5",
"laravel/framework": "^8.12",
"laravel/passport": "^10.1",
"laravel/tinker": "^2.5",
"laravel/ui": "^3.2",
"maatwebsite/excel": "^3.1",
"propaganistas/laravel-disposable-email": "^2.1",
"rennokki/laravel-eloquent-query-cache": "^2.6",
"sentry/sentry-laravel": "^2.5"
},
"require-dev": {
"barryvdh/laravel-debugbar": "^3.5",
"facade/ignition": "^2.5",
"fakerphp/faker": "^1.9.1",
"laravel/sail": "^1.0.1",
"mockery/mockery": "^1.4.2",
"nunomaduro/collision": "^5.0",
"phpunit/phpunit": "^9.3.3"
},
"autoload": {
"psr-4": {
"App\": "app/",
"Database\Factories\": "database/factories/",
"Database\Seeders\": "database/seeders/"
}
},
"autoload-dev": {
"psr-4": {
"Tests\": "tests/"
}
},
"scripts": {
"post-autoload-dump": [
"Illuminate\Foundation\ComposerScripts::postAutoloadDump",
"@php artisan package:discover --ansi"
],
"post-root-package-install": [
"@php -r "file_exists('.env') || copy('.env.example', '.env');""
],
"post-create-project-cmd": [
"@php artisan key:generate --ansi"
]
},
"extra": {
"laravel": {
"dont-discover": []
}
},
"config": {
"optimize-autoloader": true,
"preferred-install": "dist",
"sort-packages": true
},
"minimum-stability": "dev",
"prefer-stable": true
}

Add support for config file

Add support for config file.

It will be really great to have a config file to allow specification of things like the db connection, the default action for renamed or deleted columns and the migration file path (as other issues have requested) to name a few.

Exception when table name is variable

In a migration file when the table name is variable like $config['role'], an exception thrown :

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[roles]' at line 1 (SQL: DESCRIBE $config[roles])

Support for lower versions of PHP

Problem 1
- spatie/regex 3.1.1 requires php ^8.0|^8.1 -> your php version (7.4.30) does not satisfy that requirement.
- awssat/laravel-sync-migration 4.0.0 requires spatie/regex ^3.1.1 -> satisfiable by spatie/regex[3.1.1].
- Root composer.json requires awssat/laravel-sync-migration ^4.0 -> satisfiable by awssat/laravel-sync-migration[4.0.0].

allow to specify migration file path

It would be nice if you could specify a single migration file to perform a sync over, rather than allowing the sync command to iterate over dozens of migrations every time

Getting error composer install

✗ composer require awssat/laravel-sync-migration
./composer.json has been updated
Running composer update awssat/laravel-sync-migration
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - awssat/laravel-sync-migration[0.1, ..., 0.1.3] require php ~5.6|~7.0 -> your php version (8.1.27) does not satisfy that requirement.
    - awssat/laravel-sync-migration[0.1.4, ..., 0.2.0] require php ~7.1 -> your php version (8.1.27) does not satisfy that requirement.
    - awssat/laravel-sync-migration[v3.0, ..., v3.0.1] require illuminate/support 5.0 - 5.8 | ^6.0 | ^7.0 | ^8.0 -> found illuminate/support[v5.0.0, ..., v5.8.36, v6.0.0, ..., v6.20.44, v7.0.0, ..., v7.30.6, v8.0.0, ..., v8.83.27] but these were not loaded, likely because it conflicts with another require.
    - awssat/laravel-sync-migration 4.0.0 requires illuminate/support ~5.5.0 || ~5.6.0 || ~5.7.0 || ~5.8.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0 -> found illuminate/support[v5.5.0, ..., v5.8.36, v6.0.0, ..., v6.20.44, v7.0.0, ..., v7.30.6, v8.0.0, ..., v8.83.27, v9.0.0, ..., v9.52.16] but these were not loaded, likely because it conflicts with another require.
    - Root composer.json requires awssat/laravel-sync-migration * -> satisfiable by awssat/laravel-sync-migration[0.1, ..., 0.2.0, v3.0, v3.0.1, 4.0.0].

You can also try re-running composer require with an explicit version constraint, e.g. "composer require awssat/laravel-sync-migration:*" to figure out if any version is installable, or "composer require awssat/laravel-sync-migration:^2.1" if you know which you need.

Installation failed, reverting ./composer.json and ./composer.lock to their original content.

ColumnsType is not in use

Hello~ awssat. I found a bug,columnsType function is not in use.
The following changes have been tried and it works fine.

$type = Regex::match('/\$.*->(.*)\(/', $line)->group(1);

replace

$type = Regex::match('/\$.*?->(.*?)\(/', $line)->group(1);

php_network_getaddresses: getaddrinfo failed error running in sail/docker

I'm not sure why but wonder if it's conected to runnning under laravel/sail docker (mariadb) where my DB_HOST is not localhost but mariadb instead?

SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known (SQL: select * from information_schema.tables where table_schema = mydb and table_name = users and table_type = 'BASE TABLE')

Base table or view not found when using a database prefix

Hi,

Thanks for your great idea.
I have a small issue with laravel-sync-migration in a project which uses database prefixes (parameter "prefix" in database config).

In my case, here is my config line for mysql :
'prefix' => 'age_',

When I launch the command
php artisan migrate:sync

I have the following error :
Illuminate\Database\QueryException : SQLSTATE[42S02]: Base table or view not found: 1146 Table 'agence_a.users' doesn't exist (SQL: DESCRIBE users)

where 'agence_a.users' should be 'agence_a.age_users'

Not sure of the way to fix it, some help will be welcolme ;)

Thanks a lot.

Facing Issue in Installation for Laravel 9

I am not able to install package in laravel 9
Getting Error like this

Your requirements could not be resolved to an installable set of packages.

Problem 1
- awssat/laravel-sync-migration[v3.0, ..., v3.0.1] require illuminate/support 5.0 - 5.8 | ^6.0 | ^7.0 | ^8.0 -> found illuminate/support[v5.0.0, ..., 5.8.x-dev, v6.0.0, ..., 6.x-dev, v7.0.0, ..., 7.x-dev, v8.0.0, ..., 8.x-dev] but these were not loaded, likely because it conflicts with another require.
- Root composer.json requires awssat/laravel-sync-migration ^3.0 -> satisfiable by awssat/laravel-sync-migration[v3.0, v3.0.1].

You can also try re-running composer require with an explicit version constraint, e.g. "composer require awssat/laravel-sync-migration:*" to figure out if any version is installable, or "composer require awssat/laravel-sync-migration:^2.1" if you know which you need.

Installation failed, reverting ./composer.json and ./composer.lock to their original content.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.