Phinx - миграция базы данных для приложения php - схема postgreSQL не работает

Я использую Phinx для миграции базы данных.

В моем случае это не работает со схемами PostgreSQL (пример test.table).

// create the table
$table = $this->table('test.table');
$table->addColumn('test', 'integer')
      ->create();

Когда я нажимаю phinx migrate, это вызывает ошибку. Есть ли решения для этого?

Моя ошибка:

--> ОШИБКА ИЗОБРАЖЕНИЯ

Ошибка: синтаксическая ошибка или внутри "."

Поддерживает ли Phinx запись через точку в методе table?


person Piotr    schedule 05.08.2016    source источник
comment
какое сообщение об ошибке?   -  person fire    schedule 05.08.2016
comment
Вы указали адаптер pgsql в документации? docs.phinx.org/en/latest/configuration.html#supported- адаптеры   -  person Jeremy Harris    schedule 05.08.2016
comment
Я добавил img с ошибкой [ошибка изображения]   -  person Piotr    schedule 05.08.2016
comment
@JeremyHarris, да, я сделал. Он работает с общедоступной схемой, с другими нет.   -  person Piotr    schedule 05.08.2016


Ответы (2)


Я нашел альтернативное решение. Перед изменениями в таблице я вручную выбрал схему PostgreSQL.

// changing schema
$this->getAdapter()->setOptions(array_replace($this->getAdapter()->getOptions(), ['schema' => 'your_schema']));

// create the table
$table = $this->table('test_table');
$table->addColumn('test', 'integer')
            ->create();
person Piotr    schedule 12.09.2016

Вы уверены, что можете использовать точечную нотацию в имени таблицы?

// create the table
$table = $this->table('test_table');
$table->addColumn('test', 'integer')
    ->create();

test.table будет следовать образцу databasename.tablename

person Carl Casbolt    schedule 05.08.2016
comment
В postgreSQL запись через точку выглядит следующим образом: schema.tablename - person Piotr; 05.08.2016