mirror of
https://github.com/opensim/opensim.git
synced 2026-08-07 09:45:47 +08:00
plumb in connection string to the user database paths. mysql and mssql
just ignore this for now, but it lets us get connect strings to sqlite and nhibernate.
This commit is contained in:
@@ -55,10 +55,11 @@ namespace OpenSim.Data.MSSQL
|
||||
/// <summary>
|
||||
/// Loads and initialises the MySQL storage plugin
|
||||
/// </summary>
|
||||
override public void Initialise()
|
||||
override public void Initialise(string connect)
|
||||
{
|
||||
// Load from an INI file connection details
|
||||
// TODO: move this to XML?
|
||||
// TODO: do something with the connect string instead of
|
||||
// ignoring it.
|
||||
|
||||
IniFile iniFile = new IniFile("mssql_connection.ini");
|
||||
string settingDataSource = iniFile.ParseFileReadValue("data_source");
|
||||
string settingInitialCatalog = iniFile.ParseFileReadValue("initial_catalog");
|
||||
|
||||
@@ -55,10 +55,10 @@ namespace OpenSim.Data.MySQL
|
||||
/// <summary>
|
||||
/// Loads and initialises the MySQL storage plugin
|
||||
/// </summary>
|
||||
override public void Initialise()
|
||||
override public void Initialise(string connect)
|
||||
{
|
||||
// Load from an INI file connection details
|
||||
// TODO: move this to XML? Yes, PLEASE!
|
||||
// TODO: actually do something with our connect string
|
||||
// instead of loading the second config
|
||||
|
||||
IniFile iniFile = new IniFile("mysql_connection.ini");
|
||||
string settingHostname = iniFile.ParseFileReadValue("hostname");
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
@@ -35,6 +36,7 @@ using NHibernate.Cfg;
|
||||
using NHibernate.Expression;
|
||||
using NHibernate.Mapping.Attributes;
|
||||
using OpenSim.Framework;
|
||||
using Environment=NHibernate.Cfg.Environment;
|
||||
|
||||
namespace OpenSim.Data.NHibernate
|
||||
{
|
||||
@@ -48,20 +50,24 @@ namespace OpenSim.Data.NHibernate
|
||||
private Configuration cfg;
|
||||
private ISessionFactory factory;
|
||||
|
||||
public override void Initialise()
|
||||
public override void Initialise(string connect)
|
||||
{
|
||||
// TODO: hard coding for sqlite based stuff to begin with, just making it easier to test
|
||||
char[] split = {';'};
|
||||
string[] parts = connect.Split(split, 3);
|
||||
if (parts.Length != 3) {
|
||||
// TODO: make this a real exception type
|
||||
throw new Exception("Malformed Inventory connection string '" + connect + "'");
|
||||
}
|
||||
|
||||
// This is stubbing for now, it will become dynamic later and support different db backends
|
||||
cfg = new Configuration();
|
||||
cfg.SetProperty(Environment.ConnectionProvider,
|
||||
"NHibernate.Connection.DriverConnectionProvider");
|
||||
cfg.SetProperty(Environment.Dialect,
|
||||
"NHibernate.Dialect.SQLiteDialect");
|
||||
"NHibernate.Dialect." + parts[0]);
|
||||
cfg.SetProperty(Environment.ConnectionDriver,
|
||||
"NHibernate.Driver.SqliteClientDriver");
|
||||
cfg.SetProperty(Environment.ConnectionString,
|
||||
"URI=file:User.db,version=3");
|
||||
"NHibernate.Driver." + parts[1]);
|
||||
cfg.SetProperty(Environment.ConnectionString, parts[2]);
|
||||
cfg.AddAssembly("OpenSim.Data.NHibernate");
|
||||
|
||||
HbmSerializer.Default.Validate = true;
|
||||
|
||||
@@ -64,9 +64,13 @@ namespace OpenSim.Data.SQLite
|
||||
private SqliteDataAdapter daf;
|
||||
SqliteConnection g_conn;
|
||||
|
||||
override public void Initialise()
|
||||
override public void Initialise(string connect)
|
||||
{
|
||||
SqliteConnection conn = new SqliteConnection("URI=file:userprofiles.db,version=3");
|
||||
// default to something sensible
|
||||
if (connect == "")
|
||||
connect = "URI=file:userprofiles.db,version=3";
|
||||
|
||||
SqliteConnection conn = new SqliteConnection(connect);
|
||||
TestTables(conn);
|
||||
|
||||
// This sucks, but It doesn't seem to work with the dataset Syncing :P
|
||||
|
||||
@@ -51,7 +51,7 @@ namespace OpenSim.Data
|
||||
public abstract bool InventoryTransferRequest(LLUUID from, LLUUID to, LLUUID inventory);
|
||||
public abstract string Version {get;}
|
||||
public abstract string Name {get;}
|
||||
public abstract void Initialise();
|
||||
public abstract void Initialise(string connect);
|
||||
public abstract List<AvatarPickerAvatar> GeneratePickerResults(LLUUID queryID, string query);
|
||||
public abstract UserAppearance GetUserAppearance(LLUUID user);
|
||||
public abstract void UpdateUserAppearance(LLUUID user, UserAppearance appearance);
|
||||
|
||||
Reference in New Issue
Block a user