A simple and reliable SQL database migration tool for Pachyderm applications. Manage your database schema changes through SQL files with automatic tracking and ordered execution.
- 🔄 Automatic Tracking: Tracks executed migrations automatically
- 📁 SQL File-based: Simple SQL files for your migrations
- 🔄 Ordered Execution: Runs migrations in alphabetical order
- 🛡️ Safe: Prevents duplicate execution
- ⚡ Zero Config: Works out of the box
- 🤖 Easy Setup: Simple command to set up the migration structure
- PHP: 8.4 or higher
- Pachyderm: Latest version
- Composer: For dependency management
composer require aliengen/pachyderm-migrationAfter installation, run the setup command to create the necessary files:
./vendor/bin/pachyderm-migration --setupThis will automatically create:
database/migrations/folder for your SQL filesmigration.phpfile for easy execution
- Create a migration by adding a SQL file to
database/migrations/:
-- database/migrations/001_create_users_table.sql
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(255) NOT NULL UNIQUE,
email VARCHAR(255) NOT NULL UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);- Run migrations using any of these methods:
# Option 1: Using the generated migration.php file
php migration.php
# Option 2: Using the vendor binary directly
./vendor/bin/pachyderm-migration
# Option 3: Using composer run
composer run pachyderm-migrationThat's it! Your migration will be executed and tracked automatically.
Run all pending migrations using any of these methods:
# Using the generated file
php migration.php
# Using the vendor binary
./vendor/bin/pachyderm-migration
# Using composer
composer run pachyderm-migrationyour-project/
├── database/
│ └── migrations/ # Your SQL migration files
│ ├── 001_create_users.sql
│ ├── 002_create_posts.sql
│ └── 003_add_indexes.sql
├── vendor/ # Composer dependencies
├── migration.php # Migration execution script
└── composer.json
Ensure your Pachyderm config.php file includes the necessary database configuration. The migration tool will use Pachyderm's database service to connect to your database.
Example of the database service declaration in the config.php file:
Service::set('database', function () {
return Db::getInstance();
});- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Issues: GitHub Issues
Made with ❤️ by the AlienGen team