我正在将 cakephp 3.0 数据库从 mysql 迁移到 postgress。我用了this用于数据库迁移的工具,它工作得很好。之后我更改了配置文件,如下所示。
'default' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Postgres',
'persistent' => false,
'host' => 'localhost',
'port' => '5432',
'username' => 'postgres',
'password' => 'mypass',
'database' => 'cake_bookmarks',
'encoding' => 'utf8',
'timezone' => 'UTC',
'cacheMetadata' => true,
'log' => false,
'quoteIdentifiers' => false,
//'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'],
],
本地主机的根文件夹也显示“成功连接到数据库”。但是,当我运行我的应用程序时,它显示错误:
Cannot describe mytable. It has 0 columns. Cake\Database\Exception
我不能确定这是因为没有连接到数据库(我认为这不太可能,因为根页面显示为已连接)还是 cakephp 无法使用我的数据库。 如果是这样,我该如何解决这个问题。我对 cakephp 也很陌生,只是配置和做一些基本的事情。
最佳答案
尝试以下(每一步后测试):
- 检查表是否存在于数据库中
- 检查表中是否定义了预期的列
- 清除 Cake 缓存(如果 FileCache 足以删除
tmp/cache/persistent
tmp/cache/models
和tmp/cache/views 下的文件
- 检查特定用户对数据库
cake_bookmarks
的权限(可能通过 phppgadmin)
希望有所帮助!
关于php - 将现有的 cakephp 3.0 数据库从 mysql 迁移到 postgres,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33937554/