spliffs / mysqlfixer
该软件包最新版本(0.0.2)没有提供许可证信息。
修复与 MySQL-DB > 5.7.5 和一些 SilverStripe 模块相关的问题
0.0.2
2017-11-28 20:32 UTC
Requires
- silverstripe/framework: ^3.3.0
This package is not auto-updated.
Last update: 2024-09-20 01:58:14 UTC
README
此软件包旨在 修复 由某些模块引起的 ORDER BY子句的第1个表达式不在SELECT列表中...这不在SELECT列表中; 这与DISTINCT不兼容
的问题。
在MySQL >5.7.5中,由于银Stripe用于sql_mode的选项组合(包括'REAL_AS_FLOAT, PIPES_AS_CONCAT, ANSI_QUOTES, IGNORE_SPACE')中加入了 ONLY_FULL_GROUP_BY,因此出现了 distinct错误。
(另请参阅此处 https://dev.mysqlserver.cn/doc/refman/5.7/en/sql-mode.html#sql-mode-combo )
此模块引入了MySQL57Database类,它扩展了MySQLDatabase类,或者更好的是,它使用sql_mode 'REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE' 覆写了connect()方法,而不是使用 'ANSI'。
维护者联系方式
Spliff Splendor <Spliff (dot) Splendor (at) gmail (dot) com>
需求
- SilverStripe 3.3 或更高版本
安装
- 如果使用composer,请运行
composer require spliffs/mysqlfixer
。 - 否则,下载、解压缩并将 'mysqlfixer' 文件夹复制到您的项目根目录中,使其成为
framework/
的兄弟。
配置
将此添加到您的 _config.php(在 'require_once("conf/ConfigureFromEnv.php");' 之后)或您的 _ss_environment.php,在那里您配置数据库。
示例/摘录 _ss_environment.php
// DB config define('SS_DATABASE_CLASS', 'MySQL57Database');` define('SS_DATABASE_SERVER', 'mysql5.7.20.local'); define('SS_DATABASE_USERNAME', 'dbuser'); define('SS_DATABASE_PASSWORD', 'top-secret-password'); define('SS_DATABASE_NAME', 'ss_mysite');
示例 mysite/_config.php
<?php global $project; $project = 'mysite'; global $database; $database = 'SS_mysite'; require_once("conf/ConfigureFromEnv.php"); global $databaseConfig; $databaseConfig = array( "type" => 'MySQL57Database', "server" => 'mysql5.7.20.local', "username" => 'dbuser', "password" => 'top-secret-password', "database" => 'ss_mysite', ); SSViewer::set_theme('simple'); SiteTree::enable_nested_urls();