Remove remainings of mssql
This commit is contained in:
parent
3ef680d966
commit
5ed38a75d6
|
@ -115,11 +115,6 @@ class ConvertType extends Command {
|
|||
'Converting to SQLite (sqlite3) is currently not supported.'
|
||||
);
|
||||
}
|
||||
if ($type === 'mssql') {
|
||||
throw new \InvalidArgumentException(
|
||||
'Converting to Microsoft SQL Server (mssql) is currently not supported.'
|
||||
);
|
||||
}
|
||||
if ($type === $this->config->getSystemValue('dbtype', '')) {
|
||||
throw new \InvalidArgumentException(sprintf(
|
||||
'Can not convert from %1$s to %1$s.',
|
||||
|
|
|
@ -4,8 +4,7 @@ $(document).ready(function() {
|
|||
sqlite:!!$('#hasSQLite').val(),
|
||||
mysql:!!$('#hasMySQL').val(),
|
||||
postgresql:!!$('#hasPostgreSQL').val(),
|
||||
oracle:!!$('#hasOracle').val(),
|
||||
mssql:!!$('#hasMSSQL').val()
|
||||
oracle:!!$('#hasOracle').val()
|
||||
};
|
||||
|
||||
$('#selectDbType').buttonset();
|
||||
|
@ -28,7 +27,7 @@ $(document).ready(function() {
|
|||
$('#dbname').attr('pattern','[0-9a-zA-Z$_-]+');
|
||||
});
|
||||
|
||||
$('#mysql,#pgsql,#mssql').click(function() {
|
||||
$('#mysql,#pgsql').click(function() {
|
||||
$('#use_other_db').slideDown(250);
|
||||
$('#use_oracle_db').slideUp(250);
|
||||
$('#sqliteInformation').hide();
|
||||
|
|
|
@ -8,7 +8,6 @@ script('core', [
|
|||
<input type='hidden' id='hasSQLite' value='<?php p($_['hasSQLite']) ?>'>
|
||||
<input type='hidden' id='hasPostgreSQL' value='<?php p($_['hasPostgreSQL']) ?>'>
|
||||
<input type='hidden' id='hasOracle' value='<?php p($_['hasOracle']) ?>'>
|
||||
<input type='hidden' id='hasMSSQL' value='<?php p($_['hasMSSQL']) ?>'>
|
||||
<form action="index.php" method="post">
|
||||
<input type="hidden" name="install" value="true">
|
||||
<?php if(count($_['errors']) > 0): ?>
|
||||
|
@ -79,7 +78,7 @@ script('core', [
|
|||
|
||||
<?php if(!$_['dbIsSet'] OR count($_['errors']) > 0): ?>
|
||||
<fieldset id='databaseBackend'>
|
||||
<?php if($_['hasMySQL'] or $_['hasPostgreSQL'] or $_['hasOracle'] or $_['hasMSSQL'])
|
||||
<?php if($_['hasMySQL'] or $_['hasPostgreSQL'] or $_['hasOracle'])
|
||||
$hasOtherDB = true; else $hasOtherDB =false; //other than SQLite ?>
|
||||
<legend><?php p($l->t( 'Configure the database' )); ?></legend>
|
||||
<div id="selectDbType">
|
||||
|
|
|
@ -121,7 +121,7 @@ class OC_DB {
|
|||
if (is_string($stmt)) {
|
||||
// convert to an array with 'sql'
|
||||
if (stripos($stmt, 'LIMIT') !== false) { //OFFSET requires LIMIT, so we only need to check for LIMIT
|
||||
// TODO try to convert LIMIT OFFSET notation to parameters, see fixLimitClauseForMSSQL
|
||||
// TODO try to convert LIMIT OFFSET notation to parameters
|
||||
$message = 'LIMIT and OFFSET are forbidden for portability reasons,'
|
||||
. ' pass an array with \'limit\' and \'offset\' instead';
|
||||
throw new \OC\DatabaseException($message);
|
||||
|
|
|
@ -39,12 +39,6 @@ class ConnectionFactory {
|
|||
* \Doctrine\DBAL\DriverManager::getConnection().
|
||||
*/
|
||||
protected $defaultConnectionParams = array(
|
||||
'mssql' => array(
|
||||
'adapter' => '\OC\DB\AdapterSQLSrv',
|
||||
'charset' => 'UTF8',
|
||||
'driver' => 'pdo_sqlsrv',
|
||||
'wrapperClass' => 'OC\DB\Connection',
|
||||
),
|
||||
'mysql' => array(
|
||||
'adapter' => '\OC\DB\AdapterMySQL',
|
||||
'charset' => 'UTF8',
|
||||
|
|
|
@ -32,7 +32,6 @@ use Doctrine\DBAL\Platforms\MySqlPlatform;
|
|||
use Doctrine\DBAL\Platforms\OraclePlatform;
|
||||
use Doctrine\DBAL\Platforms\PostgreSqlPlatform;
|
||||
use Doctrine\DBAL\Platforms\SqlitePlatform;
|
||||
use Doctrine\DBAL\Platforms\SQLServerPlatform;
|
||||
|
||||
class MDB2SchemaManager {
|
||||
/**
|
||||
|
@ -85,8 +84,6 @@ class MDB2SchemaManager {
|
|||
return new OracleMigrator($this->conn, $random, $config);
|
||||
} else if ($platform instanceof MySqlPlatform) {
|
||||
return new MySQLMigrator($this->conn, $random, $config);
|
||||
} else if ($platform instanceof SQLServerPlatform) {
|
||||
return new MsSqlMigrator($this->conn, $random, $config);
|
||||
} else if ($platform instanceof PostgreSqlPlatform) {
|
||||
return new Migrator($this->conn, $random, $config);
|
||||
} else {
|
||||
|
|
|
@ -1,37 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* @author Morris Jobke <hey@morrisjobke.de>
|
||||
* @author Thomas Müller <thomas.mueller@tmit.eu>
|
||||
*
|
||||
* @copyright Copyright (c) 2015, ownCloud, Inc.
|
||||
* @license AGPL-3.0
|
||||
*
|
||||
* This code is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License, version 3,
|
||||
* as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License, version 3,
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
*
|
||||
*/
|
||||
|
||||
namespace OC\DB;
|
||||
|
||||
use Doctrine\DBAL\Schema\Schema;
|
||||
|
||||
class MsSqlMigrator extends Migrator {
|
||||
|
||||
/**
|
||||
* @param \Doctrine\DBAL\Schema\Schema $targetSchema
|
||||
*/
|
||||
public function migrate(Schema $targetSchema) {
|
||||
throw new MigrationException('',
|
||||
'Database migration is required to continue operation. This feature is provided within the Enterprise Edition.');
|
||||
}
|
||||
|
||||
}
|
|
@ -69,7 +69,6 @@ class Setup {
|
|||
'mysql' => '\OC\Setup\MySQL',
|
||||
'pgsql' => '\OC\Setup\PostgreSQL',
|
||||
'oci' => '\OC\Setup\OCI',
|
||||
'mssql' => '\OC\Setup\MSSQL',
|
||||
'sqlite' => '\OC\Setup\Sqlite',
|
||||
'sqlite3' => '\OC\Setup\Sqlite',
|
||||
);
|
||||
|
@ -120,11 +119,6 @@ class Setup {
|
|||
'type' => 'function',
|
||||
'call' => 'oci_connect',
|
||||
'name' => 'Oracle'
|
||||
),
|
||||
'mssql' => array(
|
||||
'type' => 'function',
|
||||
'call' => 'sqlsrv_connect',
|
||||
'name' => 'MS SQL'
|
||||
)
|
||||
);
|
||||
if ($allowAllDatabases) {
|
||||
|
@ -218,7 +212,6 @@ class Setup {
|
|||
'hasMySQL' => isset($databases['mysql']),
|
||||
'hasPostgreSQL' => isset($databases['pgsql']),
|
||||
'hasOracle' => isset($databases['oci']),
|
||||
'hasMSSQL' => isset($databases['mssql']),
|
||||
'databases' => $databases,
|
||||
'directory' => $dataDir,
|
||||
'htaccessWorking' => $htAccessWorking,
|
||||
|
|
|
@ -1,203 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* @author Bart Visscher <bartv@thisnet.nl>
|
||||
* @author Joas Schilling <nickvergessen@owncloud.com>
|
||||
* @author Morris Jobke <hey@morrisjobke.de>
|
||||
* @author Thomas Müller <thomas.mueller@tmit.eu>
|
||||
*
|
||||
* @copyright Copyright (c) 2015, ownCloud, Inc.
|
||||
* @license AGPL-3.0
|
||||
*
|
||||
* This code is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License, version 3,
|
||||
* as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License, version 3,
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
*
|
||||
*/
|
||||
namespace OC\Setup;
|
||||
|
||||
class MSSQL extends AbstractDatabase {
|
||||
public $dbprettyname = 'MS SQL Server';
|
||||
|
||||
public function setupDatabase($username) {
|
||||
//check if the database user has admin right
|
||||
$masterConnectionInfo = array( "Database" => "master", "UID" => $this->dbuser, "PWD" => $this->dbpassword);
|
||||
|
||||
$masterConnection = @sqlsrv_connect($this->dbhost, $masterConnectionInfo);
|
||||
if(!$masterConnection) {
|
||||
$entry = '';
|
||||
if( ($errors = sqlsrv_errors() ) != null) {
|
||||
$entry='DB Error: "'.print_r(sqlsrv_errors()).'"<br />';
|
||||
}
|
||||
throw new \OC\DatabaseSetupException($this->trans->t('MS SQL username and/or password not valid: %s', array($entry)),
|
||||
$this->trans->t('You need to enter either an existing account or the administrator.'));
|
||||
}
|
||||
|
||||
\OC_Config::setValues([
|
||||
'dbuser' => $this->dbuser,
|
||||
'dbpassword' => $this->dbpassword,
|
||||
]);
|
||||
|
||||
$this->createDBLogin($masterConnection);
|
||||
|
||||
$this->createDatabase($masterConnection);
|
||||
|
||||
$this->createDBUser($masterConnection);
|
||||
|
||||
sqlsrv_close($masterConnection);
|
||||
|
||||
$this->createDatabaseStructure();
|
||||
}
|
||||
|
||||
private function createDBLogin($connection) {
|
||||
$query = "SELECT * FROM master.sys.server_principals WHERE name = '".$this->dbuser."';";
|
||||
$result = sqlsrv_query($connection, $query);
|
||||
if ($result === false) {
|
||||
if ( ($errors = sqlsrv_errors() ) != null) {
|
||||
$entry='DB Error: "'.print_r(sqlsrv_errors()).'"<br />';
|
||||
} else {
|
||||
$entry = '';
|
||||
}
|
||||
$entry.='Offending command was: '.$query.'<br />';
|
||||
\OCP\Util::writeLog('setup.mssql', $entry, \OCP\Util::WARN);
|
||||
} else {
|
||||
$row = sqlsrv_fetch_array($result);
|
||||
|
||||
if ($row === false) {
|
||||
if ( ($errors = sqlsrv_errors() ) != null) {
|
||||
$entry='DB Error: "'.print_r(sqlsrv_errors()).'"<br />';
|
||||
} else {
|
||||
$entry = '';
|
||||
}
|
||||
$entry.='Offending command was: '.$query.'<br />';
|
||||
\OCP\Util::writeLog('setup.mssql', $entry, \OCP\Util::WARN);
|
||||
} else {
|
||||
if ($row == null) {
|
||||
$query = "CREATE LOGIN [".$this->dbuser."] WITH PASSWORD = '".$this->dbpassword."';";
|
||||
$result = sqlsrv_query($connection, $query);
|
||||
if (!$result or $result === false) {
|
||||
if ( ($errors = sqlsrv_errors() ) != null) {
|
||||
$entry='DB Error: "'.print_r(sqlsrv_errors()).'"<br />';
|
||||
} else {
|
||||
$entry = '';
|
||||
}
|
||||
$entry.='Offending command was: '.$query.'<br />';
|
||||
\OCP\Util::writeLog('setup.mssql', $entry, \OCP\Util::WARN);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private function createDBUser($connection) {
|
||||
$query = "SELECT * FROM [".$this->dbname."].sys.database_principals WHERE name = '".$this->dbuser."';";
|
||||
$result = sqlsrv_query($connection, $query);
|
||||
if ($result === false) {
|
||||
if ( ($errors = sqlsrv_errors() ) != null) {
|
||||
$entry='DB Error: "'.print_r(sqlsrv_errors()).'"<br />';
|
||||
} else {
|
||||
$entry = '';
|
||||
}
|
||||
$entry.='Offending command was: '.$query.'<br />';
|
||||
\OCP\Util::writeLog('setup.mssql', $entry, \OCP\Util::WARN);
|
||||
} else {
|
||||
$row = sqlsrv_fetch_array($result);
|
||||
|
||||
if ($row === false) {
|
||||
if ( ($errors = sqlsrv_errors() ) != null) {
|
||||
$entry='DB Error: "'.print_r(sqlsrv_errors()).'"<br />';
|
||||
} else {
|
||||
$entry = '';
|
||||
}
|
||||
$entry.='Offending command was: '.$query.'<br />';
|
||||
\OCP\Util::writeLog('setup.mssql', $entry, \OCP\Util::WARN);
|
||||
} else {
|
||||
if ($row == null) {
|
||||
$query = "USE [".$this->dbname."]; CREATE USER [".$this->dbuser."] FOR LOGIN [".$this->dbuser."];";
|
||||
$result = sqlsrv_query($connection, $query);
|
||||
if (!$result || $result === false) {
|
||||
if ( ($errors = sqlsrv_errors() ) != null) {
|
||||
$entry = 'DB Error: "'.print_r(sqlsrv_errors()).'"<br />';
|
||||
} else {
|
||||
$entry = '';
|
||||
}
|
||||
$entry.='Offending command was: '.$query.'<br />';
|
||||
\OCP\Util::writeLog('setup.mssql', $entry, \OCP\Util::WARN);
|
||||
}
|
||||
}
|
||||
|
||||
$query = "USE [".$this->dbname."]; EXEC sp_addrolemember 'db_owner', '".$this->dbuser."';";
|
||||
$result = sqlsrv_query($connection, $query);
|
||||
if (!$result || $result === false) {
|
||||
if ( ($errors = sqlsrv_errors() ) != null) {
|
||||
$entry='DB Error: "'.print_r(sqlsrv_errors()).'"<br />';
|
||||
} else {
|
||||
$entry = '';
|
||||
}
|
||||
$entry.='Offending command was: '.$query.'<br />';
|
||||
\OCP\Util::writeLog('setup.mssql', $entry, \OCP\Util::WARN);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private function createDatabase($connection) {
|
||||
$query = "CREATE DATABASE [".$this->dbname."];";
|
||||
$result = sqlsrv_query($connection, $query);
|
||||
if (!$result || $result === false) {
|
||||
if ( ($errors = sqlsrv_errors() ) != null) {
|
||||
$entry='DB Error: "'.print_r(sqlsrv_errors()).'"<br />';
|
||||
} else {
|
||||
$entry = '';
|
||||
}
|
||||
$entry.='Offending command was: '.$query.'<br />';
|
||||
\OCP\Util::writeLog('setup.mssql', $entry, \OCP\Util::WARN);
|
||||
}
|
||||
}
|
||||
|
||||
private function createDatabaseStructure() {
|
||||
$connectionInfo = array( "Database" => $this->dbname, "UID" => $this->dbuser, "PWD" => $this->dbpassword);
|
||||
|
||||
$connection = @sqlsrv_connect($this->dbhost, $connectionInfo);
|
||||
|
||||
//fill the database if needed
|
||||
$query = "SELECT * FROM INFORMATION_SCHEMA.TABLES"
|
||||
." WHERE TABLE_SCHEMA = '".$this->dbname."'"
|
||||
." AND TABLE_NAME = '".$this->tableprefix."users'";
|
||||
$result = sqlsrv_query($connection, $query);
|
||||
if ($result === false) {
|
||||
if ( ($errors = sqlsrv_errors() ) != null) {
|
||||
$entry='DB Error: "'.print_r(sqlsrv_errors()).'"<br />';
|
||||
} else {
|
||||
$entry = '';
|
||||
}
|
||||
$entry.='Offending command was: '.$query.'<br />';
|
||||
\OCP\Util::writeLog('setup.mssql', $entry, \OCP\Util::WARN);
|
||||
} else {
|
||||
$row = sqlsrv_fetch_array($result);
|
||||
|
||||
if ($row === false) {
|
||||
if ( ($errors = sqlsrv_errors() ) != null) {
|
||||
$entry='DB Error: "'.print_r(sqlsrv_errors()).'"<br />';
|
||||
} else {
|
||||
$entry = '';
|
||||
}
|
||||
$entry.='Offending command was: '.$query.'<br />';
|
||||
\OCP\Util::writeLog('setup.mssql', $entry, \OCP\Util::WARN);
|
||||
} else {
|
||||
if ($row == null) {
|
||||
\OC_DB::createDbFromStructure($this->dbDefinitionFile);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sqlsrv_close($connection);
|
||||
}
|
||||
}
|
|
@ -103,7 +103,7 @@ class MySQL extends AbstractDatabase {
|
|||
if(!$result) {
|
||||
$entry = $this->trans->t('DB Error: "%s"', array(mysql_error($connection))) . '<br />';
|
||||
$entry .= $this->trans->t('Offending command was: "%s"', array($query)) . '<br />';
|
||||
\OCP\Util::writeLog('setup.mssql', $entry, \OCP\Util::WARN);
|
||||
\OCP\Util::writeLog('setup.mysql', $entry, \OCP\Util::WARN);
|
||||
}
|
||||
$query="GRANT ALL PRIVILEGES ON `$name` . * TO '$user'";
|
||||
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
namespace Test\DB;
|
||||
|
||||
use Doctrine\DBAL\Platforms\OraclePlatform;
|
||||
use Doctrine\DBAL\Platforms\SQLServerPlatform;
|
||||
|
||||
class MDB2SchemaManager extends \Test\TestCase {
|
||||
|
||||
|
@ -30,9 +29,6 @@ class MDB2SchemaManager extends \Test\TestCase {
|
|||
if ($connection->getDatabasePlatform() instanceof OraclePlatform) {
|
||||
$this->markTestSkipped('Adding auto increment columns in Oracle is not supported.');
|
||||
}
|
||||
if ($connection->getDatabasePlatform() instanceof SQLServerPlatform) {
|
||||
$this->markTestSkipped('DB migration tests are not supported on MSSQL');
|
||||
}
|
||||
|
||||
$manager = new \OC\DB\MDB2SchemaManager($connection);
|
||||
|
||||
|
|
|
@ -11,9 +11,9 @@ namespace Test\DB;
|
|||
|
||||
use \Doctrine\DBAL\DBALException;
|
||||
use Doctrine\DBAL\Platforms\OraclePlatform;
|
||||
use Doctrine\DBAL\Platforms\SQLServerPlatform;
|
||||
use \Doctrine\DBAL\Schema\Schema;
|
||||
use \Doctrine\DBAL\Schema\SchemaConfig;
|
||||
use OCP\IConfig;
|
||||
|
||||
class Migrator extends \Test\TestCase {
|
||||
/**
|
||||
|
@ -31,6 +31,7 @@ class Migrator extends \Test\TestCase {
|
|||
**/
|
||||
private $config;
|
||||
|
||||
/** @var string */
|
||||
private $tableName;
|
||||
|
||||
protected function setUp() {
|
||||
|
@ -41,9 +42,6 @@ class Migrator extends \Test\TestCase {
|
|||
if ($this->connection->getDatabasePlatform() instanceof OraclePlatform) {
|
||||
$this->markTestSkipped('DB migration tests are not supported on OCI');
|
||||
}
|
||||
if ($this->connection->getDatabasePlatform() instanceof SQLServerPlatform) {
|
||||
$this->markTestSkipped('DB migration tests are not supported on MSSQL');
|
||||
}
|
||||
$this->manager = new \OC\DB\MDB2SchemaManager($this->connection);
|
||||
$this->tableName = strtolower($this->getUniqueID($this->config->getSystemValue('dbtableprefix', 'oc_') . 'test_'));
|
||||
}
|
||||
|
|
|
@ -47,9 +47,6 @@ class Test_DBSchema extends \Test\TestCase {
|
|||
*/
|
||||
public function testSchema() {
|
||||
$platform = \OC_DB::getConnection()->getDatabasePlatform();
|
||||
if ($platform instanceof \Doctrine\DBAL\Platforms\SQLServerPlatform) {
|
||||
$this->markTestSkipped("Test not relevant on MSSQL");
|
||||
}
|
||||
$this->doTestSchemaCreating();
|
||||
$this->doTestSchemaChanging();
|
||||
$this->doTestSchemaDumping();
|
||||
|
|
|
@ -81,7 +81,7 @@ class Test_OC_Setup extends \Test\TestCase {
|
|||
->expects($this->once())
|
||||
->method('getSystemValue')
|
||||
->will($this->returnValue(
|
||||
array('sqlite', 'mysql', 'pgsql', 'oci', 'mssql')
|
||||
array('sqlite', 'mysql', 'pgsql', 'oci')
|
||||
));
|
||||
$this->setupClass
|
||||
->expects($this->once())
|
||||
|
@ -96,8 +96,7 @@ class Test_OC_Setup extends \Test\TestCase {
|
|||
'sqlite' => 'SQLite',
|
||||
'mysql' => 'MySQL/MariaDB',
|
||||
'pgsql' => 'PostgreSQL',
|
||||
'oci' => 'Oracle',
|
||||
'mssql' => 'MS SQL'
|
||||
'oci' => 'Oracle'
|
||||
);
|
||||
$this->assertSame($expectedResult, $result);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue