myaghobi / f3-migrations
A database helper plugin for the Fat-Free framework.
Installs: 800
Dependents: 0
Suggesters: 0
Security: 0
Stars: 14
Watchers: 3
Forks: 3
Open Issues: 0
Language:CSS
Requires
- bcosca/fatfree-core: ^3.6
- html2text/html2text: ^4.3.1
- ikkez/f3-schema-builder: ^2.2.4
README
F3-Migrations is a database helper plugin for the Fat-Free Framework.
It's something like version control for the sql databases. Every time you have to make some changes manually in your database, you can make a MigrationCase
, and the plugin will handle that.
Installation
If you use composer, run the below code:
composer require myaghobi/f3-migrations
For manual installation:
- Copy the content of
lib/
folder into yourlib/
folder. - Install Schema Builder as mentioned in its documentation.
- Install Html2Text, by placing the
html2text.php
inside of a folder namedhtml2text
in yourlib/
.
Operation and basic usage
The plugin provides a simple web interface, consists of 4 routes that will auto add to your app:
GET /migrations
displays the web interfaceGET /migrations/@action
triggers an actionGET /migrations/@action/@target
specific target version for the actionGET /migrations/theme/@type/@file
to retrive css/js files if you have stored the UI dir in non-web-accessible path (recommended)
Also, it will create a table in your database named migrations
to handle migrations.
Instantiate
Instantiate the Migrations
class before f3->run()
. The plugin works if DEBUG>=3
, otherwise, it goes disable because of security issues and to get no resource usage.
To work with Migrations
you need an active SQL connection:
// require('vendor/autoload.php'); // $f3=Base::instance(); $f3=require('lib/base.php'); ... // Acording to f3-schema-builder // MySQL, SQLite, PostgreSQL & SQL Server are supported $db = new \DB\SQL('mysql:host=localhost;port=3306;dbname='.$DBName, $user, $pass); ... \DB\MIGRATIONS\Migrations::instance($db); $f3->run();
First migration
- Make sure the path of your cases directory be exists and secure.
- Call
yourAppPublicUrl/migrations
in browser. - Use
makecase
action to make your first migration case. - Call
migrate
action.
Config
This plugin is configurable via config file:
[migrations] ENABLE=true ; PATH relative to `index.php` PATH=../migrations SHOW_BY_VERSOIN=true CASE_PREFIX=migration_case_ LOG=true
The above config is the default, you can ignore/remove each one you don't need to change.
Logging
You can find the logs of actions in migrations.log
located in the LOGS folder.
CLI mode
Just run the below code:
php index.php /migrations
Upgrade
- First update the plugin via composer or manually.
- Now the path of migration cases is relative to
index.php
, so make sure it be exists. - Make a backup of your DB and migration cases.
- Call
upgrademc
action to update the old migration cases.
Finally call fresh
action.
License
You are allowed to use this plugin under the terms of the GNU General Public License version 3 or later.
Copyright (C) 2021 Mohammad Yaghobi