php - 将现有的 cakephp 3.0 数据库从 mysql 迁移到 postgres

标签 php mysql database postgresql cakephp

我正在将 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/modelstmp/cache/views 下的文件
  • 检查特定用户对数据库 cake_bookmarks 的权限(可能通过 phppgadmin)

希望有所帮助!

关于php - 将现有的 cakephp 3.0 数据库从 mysql 迁移到 postgres,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33937554/

相关文章:

php - 在我的 mysql 查询中无法正常工作的地方

php - 如何显示companyid=$companyid的所有记录

asp.net - SqlDataSource.Select()?我该如何使用它? (ASP.net)

mysql - 如何在不使用 union mysql 的情况下从一个查询中的两个不同表求和

php - PHP中的批量图像处理cronjob

php - 使用 create 方法从 laravel 获取最后插入的 id

php - UNIX_TIMESTAMP(时间戳) 使用

php - 如何将 session 用户名插入mysql数据库

database - 如何在未安装 Access 的计算机中使用 MS-Access 数据库?

php - 从 MySQL 数据库输出数组...如何在 PHP 中删除方括号和双引号?