spliffs/mysqlfixer

该软件包最新版本(0.0.2)没有提供许可证信息。

修复与 MySQL-DB > 5.7.5 和一些 SilverStripe 模块相关的问题

安装: 395

依赖: 0

建议: 0

安全: 0

星标: 0

关注者: 1

分支: 0

开放问题: 0

类型:silverstripe-module

0.0.2 2017-11-28 20:32 UTC

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();

开放问题