Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jamband/yii2-schemadump
Generate the schema from an existing database
https://github.com/jamband/yii2-schemadump
database php yii yii2-extension
Last synced: 6 days ago
JSON representation
Generate the schema from an existing database
- Host: GitHub
- URL: https://github.com/jamband/yii2-schemadump
- Owner: jamband
- License: mit
- Archived: true
- Created: 2014-11-25T15:00:21.000Z (about 10 years ago)
- Default Branch: main
- Last Pushed: 2022-05-26T18:50:38.000Z (over 2 years ago)
- Last Synced: 2024-09-22T22:01:58.196Z (4 months ago)
- Topics: database, php, yii, yii2-extension
- Language: PHP
- Homepage: https://www.yiiframework.com/extension/yii2-schemadump
- Size: 186 KB
- Stars: 93
- Watchers: 12
- Forks: 21
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-yii2 - jamband/yii2-schemadump
README
# yii2-schemadump
[![Build Status](https://github.com/jamband/yii2-schemadump/workflows/tests/badge.svg)](https://github.com/jamband/yii2-schemadump/actions?workflow=tests) [![Latest Stable Version](https://img.shields.io/packagist/v/jamband/yii2-schemadump)](https://packagist.org/packages/jamband/yii2-schemadump) [![Total Downloads](https://img.shields.io/packagist/dt/jamband/yii2-schemadump)](https://packagist.org/packages/jamband/yii2-schemadump)
Generate the schema from an existing database.
## Demo
![gif](https://raw.githubusercontent.com/jamband/jamband.github.io/main/images/yii2-schemadump.gif)
## Requirements
- PHP 7.4 or later
- Yii 2.x## Installation
```
composer require --dev jamband/yii2-schemadump
```## Usage
Add the following in config/console.php:
```php
return [
...
'components' => [
...
],
'controllerMap' => [
'migrate' => [
'class' => yii\console\controllers\MigrateController::class,
'templateFile' => '@jamband/schemadump/template.php',
],
'schemadump' => [
'class' => jamband\schemadump\SchemaDumpController::class,
'db' => [
'class' => yii\db\Connection::class,
'dsn' => 'mysql:host=localhost;dbname=existing_database_name',
'username' => 'your_username',
'password' => 'your_password',
],
],
],
...
];
```And run `schemadump` command.
```
cd /path/to/project
./yii schemadump
```Example output:
```php
// user
$this->createTable('{{%user}}', [
'id' => $this->primaryKey()->comment('主キー'),
'username' => $this->string(20)->notNull()->unique()->comment('ユーザ名'),
'email' => $this->string(255)->notNull()->unique()->comemnt('メールアドレス'),
'password' => $this->string(255)->notNull()->comment('パスワード'),
], $this->tableOptions);
```Copy the output code and paste it into a migration file.
## Commands
Generates the 'createTable' code. (default)
```
./yii schemadump
./yii schemadump/create
```Generates the 'dropTable' code.
```
./yii schemadump/drop
```Useful commands (for macOS user):
```
./yii schemadump | pbcopy
./yii schemadump/drop | pbcopy
```Check help.
```
./yii help schemadump
```## Supports
- Types
- Size
- Unsigned
- NOT NULL
- DEFAULT value
- COMMENT
- Unique key
- Foreign key
- Composite primary keys
- Primary key without AUTO_INCREMENT
- ENUM type (for MySQL)