类 SchemaLoader
从一个或多个 SQL 转储文件创建测试数据库架构。
当您的架构由 CakePHP 应用程序外部的工具管理时,此类可能有助于创建测试数据库架构。
它不适合需要支持多个数据库平台的应用程序/插件。您应该改为使用迁移。
命名空间: Cake\TestSuite\Fixture
方法概要
-
loadInternalFile() public
加载并应用 CakePHP 架构文件。
-
loadSqlFiles() public
加载并应用架构 SQL 文件,或文件数组。
方法详情
loadInternalFile() ¶ public
loadInternalFile(string $file, string $connectionName = 'test'): void
加载并应用 CakePHP 架构文件。
此方法将处理 $file
返回的数组,并将内容视为表架构列表。
一个示例表是
return [
'articles' => [
'columns' => [
'id' => [
'type' => 'integer',
],
'author_id' => [
'type' => 'integer',
'null' => true,
],
'title' => [
'type' => 'string',
'null' => true,
],
'body' => 'text',
'published' => [
'type' => 'string',
'length' => 1,
'default' => 'N',
],
],
'constraints' => [
'primary' => [
'type' => 'primary',
'columns' => [
'id',
],
],
],
],
];
这种架构格式对于希望包含测试的表但不需要通过迁移包含生产就绪架构的插件很有用。为了便于维护,应用程序应优先使用迁移或 SQL 转储文件而不是这种格式。
可以在 tests/schema.php
中找到更完整的示例。
参数
-
string
$file 架构文件
-
string
$connectionName 可选 连接名称
返回值
void
抛出
InvalidArgumentException
对于缺少的表名。
loadSqlFiles() ¶ public
loadSqlFiles(list<string>|string $paths, string $connectionName = 'test', bool $dropTables = true, bool $truncateTables = false): void
加载并应用架构 SQL 文件,或文件数组。
参数
-
list<string>|string
$paths 要加载的架构文件
-
string
$connectionName 可选 连接名称
-
bool
$dropTables 可选 在加载架构文件之前删除所有表
-
bool
$truncateTables 可选 在加载架构文件后截断所有表
返回值
void