com.jukusoft / php-database-table-upgrader
php-database-table-upgrader,自动升级 MySQL 表结构的数据库升级工具。您不再需要编写 CREATE TABLE、ALTER TABLE 等查询,只需在 PHP 中配置表结构,类将自动升级表结构。
0.0.1
2016-08-14 14:47 UTC
Requires
- php: >=7.0.8
This package is not auto-updated.
Last update: 2024-09-20 07:14:43 UTC
README
自动升级 MySQL 表结构的数据库升级工具
版本:0.0.1 alpha 许可证:LGPL 3.0
当前升级尚未完全集成,但表创建应该可以工作。正在进行中!
要求
- PHP 7.0.8+
- MySQL 5.7+
配置
如果您想使用内置的 MySQLDriver,您需要将 config/mysql.examplecfg.php 复制到 mysql.cfg.php 并更改值。
支持的数据类型
- INT
- VARCHAR
- TEXT
- CHAR
- TINYTEXT
- MEDIUMTEXT
- LONGTEXT (4294967295 个字符)
- BIT
- BINARY
- TINYINT
- SMALLINT
- MEDIUMINT
- BIGINT
- DECIMAL
- NUMERIC
- DOUBLE
- FLOAT
- REAL
- BLOB
- TINYBLOB
- MEDIUMBLOB
- LONGBLOB
- ENUM
- SET
- DATE
- TIME
- YEAR
- TIMESTAMP
- DATETIME
- JSON
支持的关键和索引
-
PRIMARY KEY
-
INDEX
-
UNIQUE
-
SPATIAL
-
FULLTEXT
-
FOREIGN KEY
-
更多正在进行中
示例
生成 CREATE TABLE 查询
//create or upgrade test table $table = new DBTable("test", $dbDriver); $table->setEngine("InnoDB"); $table->setCharset("utf8"); //add int coloum $table->addInt("id"); //add int coloum with length 10, NOT NULL and AUTO_INCREMENT $table->addInt("testint", 10, true, true); //add varchar column $table->addVarchar("test_text", 255, true, "default value"); //add text column $table->addText("text"); //print CREATE statement for debugging echo $table->generateCreateQuery();
输出以下查询
CREATE TABLE `{DBPRAEFIX}test` IF NOT EXISTS ( `id` INT, `testint` INT(10) NOT NULL AUTO_INCREMENT, `test_text` VARCHAR(255) NOT NULL DEFAULT 'default value', `text` TEXT ) TYPE=InnoDB DEFAULT CHARSET=utf8;
如何添加 PRIMARY KEY
仅一个列的 PRIMARY
//add primary key $table->addPrimaryKey("column_name");
多个列的 PRIMARY KEY
//add primary key $table->addPrimaryKey(array("id", "testint"));
因为 PRIMARY KEY 有限制特定的长度,您也可以指定 PRIMARY KEY 中使用的列的长度
//add primary key $table->addPrimaryKey(array("id", "testint", array('column' => "test_text", 'length' => 50)));