From 5c4001d84b22e56e769c55a0780782919d2f9db3 Mon Sep 17 00:00:00 2001 From: Chris Harris Date: Mon, 14 Mar 2016 05:29:42 -0700 Subject: [PATCH] Schema Builder Patterns Excel document in /docs folder (temp storage). Fixed some schema builder patterns. Added more information to upgrade docs. --- docs/schema-builder-patterns.xlsx | Bin 0 -> 51118 bytes framework/UPGRADE.md | 5 ++--- framework/db/ColumnSchemaBuilder.php | 2 +- framework/db/cubrid/ColumnSchemaBuilder.php | 2 +- framework/db/oci/ColumnSchemaBuilder.php | 2 +- framework/db/sqlite/ColumnSchemaBuilder.php | 2 +- 6 files changed, 6 insertions(+), 7 deletions(-) create mode 100644 docs/schema-builder-patterns.xlsx diff --git a/docs/schema-builder-patterns.xlsx b/docs/schema-builder-patterns.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..c2b9b206df18ad410ec08efa087cc298ecbd4984 GIT binary patch literal 51118 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

{^4nG?-ir-4GxKn`B5RPy2)Vl+Y&s{?~M4n;PG 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 zjxo9^$b}TBEgetTypeCategory()) { case self::CATEGORY_PK: - $format = '{type}{length}{check}'; + $format = '{type}{check}'; break; default: $format = '{type}{length}{notnull}{unique}{default}{check}'; diff --git a/framework/db/cubrid/ColumnSchemaBuilder.php b/framework/db/cubrid/ColumnSchemaBuilder.php index 4eb44fb..2efeaed 100644 --- a/framework/db/cubrid/ColumnSchemaBuilder.php +++ b/framework/db/cubrid/ColumnSchemaBuilder.php @@ -50,7 +50,7 @@ class ColumnSchemaBuilder extends AbstractColumnSchemaBuilder { switch ($this->getTypeCategory()) { case self::CATEGORY_PK: - $format = '{type}{length}{check}{pos}'; + $format = '{type}{check}{pos}'; break; case self::CATEGORY_NUMERIC: $format = '{type}{length}{unsigned}{notnull}{unique}{default}{check}{pos}'; diff --git a/framework/db/oci/ColumnSchemaBuilder.php b/framework/db/oci/ColumnSchemaBuilder.php index 8a54384..ce3fed6 100644 --- a/framework/db/oci/ColumnSchemaBuilder.php +++ b/framework/db/oci/ColumnSchemaBuilder.php @@ -50,7 +50,7 @@ class ColumnSchemaBuilder extends AbstractColumnSchemaBuilder { switch ($this->getTypeCategory()) { case self::CATEGORY_PK: - $format = '{type}{length}{check}{pos}'; + $format = '{type}{length}{unsigned}{check}{pos}'; break; case self::CATEGORY_NUMERIC: $format = '{type}{length}{unsigned}{default}{notnull}{check}{pos}'; diff --git a/framework/db/sqlite/ColumnSchemaBuilder.php b/framework/db/sqlite/ColumnSchemaBuilder.php index f889dfb..427aa37 100644 --- a/framework/db/sqlite/ColumnSchemaBuilder.php +++ b/framework/db/sqlite/ColumnSchemaBuilder.php @@ -33,7 +33,7 @@ class ColumnSchemaBuilder extends AbstractColumnSchemaBuilder { switch ($this->getTypeCategory()) { case self::CATEGORY_PK: - $format = '{type}{length}{check}'; + $format = '{type}{unsigned}{check}'; break; case self::CATEGORY_NUMERIC: $format = '{type}{length}{unsigned}{notnull}{unique}{check}{default}';