silverstripe/sqlite3 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

silverstripe/sqlite3

Composer 安装命令:

composer require silverstripe/sqlite3

包简介

Adds SQLite3 support to SilverStripe

README 文档

README

CI

Maintainer Contact

Andreas Piening (Nickname: apiening) <andreas (at) silverstripe (dot) com>

Installation

composer require silverstripe/sqlite3

Configuration

Either use the installer to automatically install SQLite or add this to your _config.php (right after "require_once("conf/ConfigureFromEnv.php");" if you are using _ss_environment.php)

$databaseConfig['type'] = 'SQLite3Database';
$databaseConfig['path'] = "/path/to/my/database/file";

Make sure the webserver has sufficient privileges to write to that folder and that it is protected from external access.

Sample mysite/_config.php

<?php
global $project;
$project = 'mysite';

global $database;
$database = 'SS_mysite';

require_once("conf/ConfigureFromEnv.php");

global $databaseConfig;
$databaseConfig = array(
	"type" => 'SQLite3Database',
	"server" => 'none',
	"username" => 'none',
	"password" => 'none',
	"database" => $database,
	"path" => "/path/to/my/database/file",
);

Again: make sure that the webserver has permission to read and write to the above path (/path/to/my/database/, 'file' would be the name of the sqlite db file)

URL parameter

If you're trying to change a field constrain to NOT NULL on a field that contains NULLs dev/build fails because it might corrupt existing records. In order to perform the action anyway add the URL parameter 'avoidConflict' when running dev/build which temporarily adds a conflict clause to the field spec. E.g.: http://www.my-project.com/?avoidConflict=1

MySQL Compatibility

Enable optional MySQL-to-SQLite transpilation for custom queries:

SilverStripe\SQLite\SQLite3SQLTranspiler:
  enable_mysql_compat: true

Converts MySQL functions to SQLite equivalents:

MySQL SQLite
STRAIGHT_JOIN JOIN
ON DUPLICATE KEY UPDATE ON CONFLICT(...) DO UPDATE SET
NOW() datetime('now')
UNIX_TIMESTAMP() strftime('%s', 'now')
UNIX_TIMESTAMP(date) strftime('%s', date)

Open Issues

  • Third-party modules with MySQL-specific SQL may need enable_mysql_compat enabled (see above)
  • No fulltext search; built-in search doesn't order by relevance. Check out fts3

统计信息

  • 总下载量: 560.34k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 9
  • 点击次数: 8
  • 依赖项目数: 23
  • 推荐数: 0

GitHub 信息

  • Stars: 8
  • Watchers: 8
  • Forks: 23
  • 开发语言: PHP

其他信息

  • 授权协议: Unknown
  • 更新时间: 2012-11-03

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固