Skip to main content

Module phinx_migration

Module phinx_migration 

Source
Expand description

Phinx 风格 migration 链式 API

提供 Phinx 风格的链式建表/改表 API,更直观易用。

§设计

Phinx 是 PHP 生态流行的 migration 工具(think-orm 默认集成), 其 API 风格比传统 SchemaBuilder 更直观:

$table = $this->table('users');
$table->addColumn('name', 'string', ['limit' => 255])
      ->addColumn('email', 'string', ['limit' => 255])
      ->addIndex(['email'], ['unique' => true])
      ->create();

本模块提供 Rust 版本的等价 API:

use sz_orm_core::phinx_migration::{PhinxTable, ColumnType};
use sz_orm_core::db_type::DbType;

let sql = PhinxTable::new("users")
    .add_column("name", ColumnType::String, |c| c.limit(255).not_null())
    .add_column("email", ColumnType::String, |c| c.limit(255).not_null())
    .add_column("age", ColumnType::Integer, |_| {})
    .add_index(&["email"], |i| i.unique())
    .add_foreign_key("role_id", "roles", "id", |fk| fk.on_delete_cascade())
    .create(DbType::MySQL);

Structs§

ColumnOptions
列选项构建器(Phinx 风格链式配置)
ForeignKeyOptions
外键选项构建器(Phinx 风格链式配置)
IndexOptions
索引选项构建器(Phinx 风格链式配置)
PhinxTable
Phinx 风格表构建器

Enums§

ColumnType
Phinx 风格列类型枚举