/*
Kooboo is a content management system based on ASP.NET MVC framework. Copyright 2009 Yardi Technology Limited.
This program is free software: you can redistribute it and/or modify it under the terms of the
GNU 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 General Public License for more details.
You should have received a copy of the GNU General Public License along with this program.
If not, see http://www.kooboo.com/gpl3/.
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.Common;
using System.Data.SqlClient;
using System.IO;
using Everest.Library.ExtensionMethod;
using System.Text.RegularExpressions;
namespace Everest.CmsServices.Installation{
public class MSSQLUpdater : UpdaterBase
{
const string Backup_DDL = "BACKUP DATABASE [{0}] TO DISK ='{1}'";
const string BackupFile = "{0}.bak";
public override void UpgradeConfig(KoobooInstance olderInstance, KoobooInstance newerInstance)
{
MSSQLInstaller.ChangeConfigFile(olderInstance.ConnectionString, newerInstance.KoobooPath);
}
protected override string BackupDatabase(string connectionString)
{
var databaseName = GetDatabaseName(connectionString);
var backupFile = string.Format(BackupFile, databaseName);
string backup_sql = string.Format(Backup_DDL, databaseName, backupFile);
DbHelper.ExecuteNoQuery(DbFactory, connectionString, backup_sql);
return backupFile;
}
private string GetDatabaseName(string connectionString)
{
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(connectionString);
return builder.InitialCatalog;
}
protected override string SQLFolder
{
get { return "sql\\MSSQL"; }
}
protected override DbProviderFactory DbFactory
{
get { return SqlClientFactory.Instance; }
}
}
}
|