Когда я создаю базу данных с моим пользователем, общедоступная схема создается с помощью пользователя "postgres".Я могу создавать и удалять таблицы в этой схеме, но не могу удалить схему или изменить владельца.
Я устанавливаю миграцию Phinx для проекта php.Это зрелый проект, который имеет много таблиц.Для первой миграции по методу up () я загружаю файл sql со схемой базы данных, а по методу down () я бы отбрасывал схему (таблицы, триггеры, процедуры ...)
class FirstMigration extends AbstractMigration
{
public function up()
{
$schema= file_get_contents('./database/migrations/schemaDB.sql');
$this->execute($schema);
}
public function down()
{
$this->execute("DROP SCHEMA public CASCADE");
$this->execute("CREATE SCHEMA public");
}
}
Когда я выполняю откат, у меня появляется ошибка:
Недостаточно прав: 7 ОШИБКА: Вы должны быть владельцем общедоступной схемы.
При создании базы данных я выбираю пользователя "citest"
Но владельцем по умолчанию для публичной схемы является "postgres"!
и я не могу его изменить.
Мой пользователь является владельцем базы данных, но не является владельцем общедоступной схемы, которая является пользователем "postgres".