mirror of
https://github.com/opensim/opensim.git
synced 2026-08-11 11:57:03 +08:00
Thank you kindly, TLaukkan (Tommil) for a patch that:
* Created value object for EstateRegionLink for storing the estate region relationship. * Refactored slightly NHibernateManager and NHibernateXXXXData implementations for accesing nhibernate generated ID on insert. ** Changed NHibernateManager.Save method name to Insert as it does Insert. ** Changed NHibernateManager.Save return value object as ID can be both UUID and uint currently. ** Changed NHibernateManager.Load method Id parameter to object as it can be both UUID and uint. * Created NHibernateEstateData implementation. This is the actual estate storage. * Created NHibernate mapping files for both EstateSettings and EstateRegionLink * Created MigrationSyntaxDifferences.txt files to write notes about differences in migration scripts between different databases. * Created estate storage migration scripts for all four databases. * Created estate unit test classes for all four databases. * Updated one missing field to BasicEstateTest.cs * Tested NHibernate unit tests with NUnit GUI. Asset databases fail but that is not related to this patch. * Tested build with both Visual Studio and nant. * Executed build tests with nant succesfully.
This commit is contained in:
12
OpenSim/Data/NHibernate/Resources/EstateRegionLink.hbm.xml
Normal file
12
OpenSim/Data/NHibernate/Resources/EstateRegionLink.hbm.xml
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
|
||||
<class name="OpenSim.Data.NHibernate.EstateRegionLink, OpenSim.Data.NHibernate" table="EstateRegionLink" lazy="false">
|
||||
<id name="EstateRegionLinkID" column="EstateRegionLinkID" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate">
|
||||
<generator class="assigned" />
|
||||
</id>
|
||||
|
||||
<property name="EstateID" type="OpenSim.Data.NHibernate.UInt32Type, OpenSim.Data.NHibernate" />
|
||||
<property name="RegionID" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" />
|
||||
|
||||
</class>
|
||||
</hibernate-mapping>
|
||||
39
OpenSim/Data/NHibernate/Resources/EstateSettings.hbm.xml
Normal file
39
OpenSim/Data/NHibernate/Resources/EstateSettings.hbm.xml
Normal file
@@ -0,0 +1,39 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
|
||||
<class name="OpenSim.Framework.EstateSettings, OpenSim.Framework" table="EstateSettings" lazy="false">
|
||||
|
||||
<id name="EstateID" column="EstateID" type="OpenSim.Data.NHibernate.UInt32Type, OpenSim.Data.NHibernate">
|
||||
<generator class="increment" />
|
||||
</id>
|
||||
|
||||
<property name="ParentEstateID" type="OpenSim.Data.NHibernate.UInt32Type, OpenSim.Data.NHibernate" />
|
||||
<property name="EstateOwner" column="EstateOwnerID" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" />
|
||||
|
||||
<property name="EstateName" column="Name" type="String" length="64" />
|
||||
|
||||
<property name="RedirectGridX" type="System.Int32" />
|
||||
<property name="RedirectGridY" type="System.Int32" />
|
||||
|
||||
<property name="BillableFactor" type="System.Single" />
|
||||
<property name="PricePerMeter" type="System.Int32" />
|
||||
<property name="SunPosition" type="System.Double" />
|
||||
|
||||
<property name="UseGlobalTime" type="System.Boolean" />
|
||||
<property name="FixedSun" type="System.Boolean" />
|
||||
<property name="AllowVoice" type="System.Boolean" />
|
||||
<property name="AllowDirectTeleport" type="System.Boolean" />
|
||||
<property name="ResetHomeOnTeleport" type="System.Boolean" />
|
||||
<property name="PublicAccess" type="System.Boolean" />
|
||||
<property name="DenyAnonymous" type="System.Boolean" />
|
||||
<property name="DenyIdentified" type="System.Boolean" />
|
||||
<property name="DenyTransacted" type="System.Boolean" />
|
||||
<property name="DenyMinors" type="System.Boolean" />
|
||||
<property name="BlockDwell" type="System.Boolean" />
|
||||
<property name="EstateSkipScripts" type="System.Boolean" />
|
||||
<property name="TaxFree" type="System.Boolean" />
|
||||
<property name="AbuseEmailToEstateOwner" type="System.Boolean" />
|
||||
|
||||
<property name="AbuseEmail" type="String" length="255" />
|
||||
|
||||
</class>
|
||||
</hibernate-mapping>
|
||||
@@ -0,0 +1,14 @@
|
||||
?This file describes the differences in schema creation and migration scripts.
|
||||
|
||||
MySQL is used as reference script against which differences are listed.
|
||||
|
||||
Generally MySQL create table options should be removed for other databases.
|
||||
|
||||
_PostgreSQL_
|
||||
* DOUBLE->DOUBLE PRECISION
|
||||
* BIT->BOOLEAN
|
||||
|
||||
_MsSql_
|
||||
* VARCHAR->NVARCHAR
|
||||
* Remove DEFAULT-keywords
|
||||
* DOUBLE->REAL
|
||||
@@ -0,0 +1,40 @@
|
||||
CREATE TABLE EstateSettings (
|
||||
EstateID INT NOT NULL,
|
||||
ParentEstateID INT NULL,
|
||||
EstateOwnerID NVARCHAR(36) NULL,
|
||||
Name NVARCHAR(64) NULL,
|
||||
RedirectGridX INT NULL,
|
||||
RedirectGridY INT NULL,
|
||||
BillableFactor REAL NULL,
|
||||
PricePerMeter INT NULL,
|
||||
SunPosition REAL NULL,
|
||||
|
||||
UseGlobalTime BIT NULL,
|
||||
FixedSun BIT NULL,
|
||||
AllowVoice BIT NULL,
|
||||
AllowDirectTeleport BIT NULL,
|
||||
ResetHomeOnTeleport BIT NULL,
|
||||
PublicAccess BIT NULL,
|
||||
DenyAnonymous BIT NULL,
|
||||
DenyIdentified BIT NULL,
|
||||
DenyTransacted BIT NULL,
|
||||
DenyMinors BIT NULL,
|
||||
BlockDwell BIT NULL,
|
||||
EstateSkipScripts BIT NULL,
|
||||
TaxFree BIT NULL,
|
||||
AbuseEmailToEstateOwner BIT NULL,
|
||||
|
||||
AbuseEmail NVARCHAR(255) NULL,
|
||||
|
||||
PRIMARY KEY (EstateID)
|
||||
);
|
||||
|
||||
CREATE TABLE EstateRegionLink (
|
||||
EstateRegionLinkID NVARCHAR(36) NOT NULL,
|
||||
EstateID INT NULL,
|
||||
RegionID NVARCHAR(36) NULL,
|
||||
PRIMARY KEY (EstateRegionLinkID)
|
||||
);
|
||||
|
||||
CREATE INDEX EstateRegionLinkEstateIDIndex ON EstateRegionLink (EstateID);
|
||||
CREATE INDEX EstateRegionLinkERegionIDIndex ON EstateRegionLink (RegionID);
|
||||
@@ -0,0 +1,40 @@
|
||||
CREATE TABLE EstateSettings (
|
||||
EstateID INT NOT NULL,
|
||||
ParentEstateID INT DEFAULT NULL,
|
||||
EstateOwnerID VARCHAR(36) DEFAULT NULL,
|
||||
Name VARCHAR(64) DEFAULT NULL,
|
||||
RedirectGridX INT DEFAULT NULL,
|
||||
RedirectGridY INT DEFAULT NULL,
|
||||
BillableFactor DOUBLE DEFAULT NULL,
|
||||
PricePerMeter INT DEFAULT NULL,
|
||||
SunPosition DOUBLE DEFAULT NULL,
|
||||
|
||||
UseGlobalTime BIT DEFAULT NULL,
|
||||
FixedSun BIT DEFAULT NULL,
|
||||
AllowVoice BIT DEFAULT NULL,
|
||||
AllowDirectTeleport BIT DEFAULT NULL,
|
||||
ResetHomeOnTeleport BIT DEFAULT NULL,
|
||||
PublicAccess BIT DEFAULT NULL,
|
||||
DenyAnonymous BIT DEFAULT NULL,
|
||||
DenyIdentified BIT DEFAULT NULL,
|
||||
DenyTransacted BIT DEFAULT NULL,
|
||||
DenyMinors BIT DEFAULT NULL,
|
||||
BlockDwell BIT DEFAULT NULL,
|
||||
EstateSkipScripts BIT DEFAULT NULL,
|
||||
TaxFree BIT DEFAULT NULL,
|
||||
AbuseEmailToEstateOwner BIT DEFAULT NULL,
|
||||
|
||||
AbuseEmail VARCHAR(255) DEFAULT NULL,
|
||||
|
||||
PRIMARY KEY (EstateID)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Rev. 1';
|
||||
|
||||
CREATE TABLE EstateRegionLink (
|
||||
EstateRegionLinkID VARCHAR(36) NOT NULL,
|
||||
EstateID INT DEFAULT NULL,
|
||||
RegionID VARCHAR(36) DEFAULT NULL,
|
||||
PRIMARY KEY (EstateRegionLinkID)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Rev. 1';
|
||||
|
||||
CREATE INDEX EstateRegionLinkEstateIDIndex ON EstateRegionLink (EstateID);
|
||||
CREATE INDEX EstateRegionLinkERegionIDIndex ON EstateRegionLink (RegionID);
|
||||
@@ -0,0 +1,40 @@
|
||||
CREATE TABLE EstateSettings (
|
||||
EstateID INT NOT NULL,
|
||||
ParentEstateID INT DEFAULT NULL,
|
||||
EstateOwnerID VARCHAR(36) DEFAULT NULL,
|
||||
Name VARCHAR(64) DEFAULT NULL,
|
||||
RedirectGridX INT DEFAULT NULL,
|
||||
RedirectGridY INT DEFAULT NULL,
|
||||
BillableFactor DOUBLE PRECISION DEFAULT NULL,
|
||||
PricePerMeter INT DEFAULT NULL,
|
||||
SunPosition DOUBLE PRECISION DEFAULT NULL,
|
||||
|
||||
UseGlobalTime BOOLEAN DEFAULT NULL,
|
||||
FixedSun BOOLEAN DEFAULT NULL,
|
||||
AllowVoice BOOLEAN DEFAULT NULL,
|
||||
AllowDirectTeleport BOOLEAN DEFAULT NULL,
|
||||
ResetHomeOnTeleport BOOLEAN DEFAULT NULL,
|
||||
PublicAccess BOOLEAN DEFAULT NULL,
|
||||
DenyAnonymous BOOLEAN DEFAULT NULL,
|
||||
DenyIdentified BOOLEAN DEFAULT NULL,
|
||||
DenyTransacted BOOLEAN DEFAULT NULL,
|
||||
DenyMinors BOOLEAN DEFAULT NULL,
|
||||
BlockDwell BOOLEAN DEFAULT NULL,
|
||||
EstateSkipScripts BOOLEAN DEFAULT NULL,
|
||||
TaxFree BOOLEAN DEFAULT NULL,
|
||||
AbuseEmailToEstateOwner BOOLEAN DEFAULT NULL,
|
||||
|
||||
AbuseEmail VARCHAR(255) DEFAULT NULL,
|
||||
|
||||
PRIMARY KEY (EstateID)
|
||||
);
|
||||
|
||||
CREATE TABLE EstateRegionLink (
|
||||
EstateRegionLinkID VARCHAR(36) NOT NULL,
|
||||
EstateID INT DEFAULT NULL,
|
||||
RegionID VARCHAR(36) DEFAULT NULL,
|
||||
PRIMARY KEY (EstateRegionLinkID)
|
||||
);
|
||||
|
||||
CREATE INDEX EstateRegionLinkEstateIDIndex ON EstateRegionLink (EstateID);
|
||||
CREATE INDEX EstateRegionLinkERegionIDIndex ON EstateRegionLink (RegionID);
|
||||
@@ -0,0 +1,40 @@
|
||||
CREATE TABLE EstateSettings (
|
||||
EstateID INT NOT NULL,
|
||||
ParentEstateID INT DEFAULT NULL,
|
||||
EstateOwnerID VARCHAR(36) DEFAULT NULL,
|
||||
Name VARCHAR(64) DEFAULT NULL,
|
||||
RedirectGridX INT DEFAULT NULL,
|
||||
RedirectGridY INT DEFAULT NULL,
|
||||
BillableFactor DOUBLE DEFAULT NULL,
|
||||
PricePerMeter INT DEFAULT NULL,
|
||||
SunPosition DOUBLE DEFAULT NULL,
|
||||
|
||||
UseGlobalTime BIT DEFAULT NULL,
|
||||
FixedSun BIT DEFAULT NULL,
|
||||
AllowVoice BIT DEFAULT NULL,
|
||||
AllowDirectTeleport BIT DEFAULT NULL,
|
||||
ResetHomeOnTeleport BIT DEFAULT NULL,
|
||||
PublicAccess BIT DEFAULT NULL,
|
||||
DenyAnonymous BIT DEFAULT NULL,
|
||||
DenyIdentified BIT DEFAULT NULL,
|
||||
DenyTransacted BIT DEFAULT NULL,
|
||||
DenyMinors BIT DEFAULT NULL,
|
||||
BlockDwell BIT DEFAULT NULL,
|
||||
EstateSkipScripts BIT DEFAULT NULL,
|
||||
TaxFree BIT DEFAULT NULL,
|
||||
AbuseEmailToEstateOwner BIT DEFAULT NULL,
|
||||
|
||||
AbuseEmail VARCHAR(255) DEFAULT NULL,
|
||||
|
||||
PRIMARY KEY (EstateID)
|
||||
);
|
||||
|
||||
CREATE TABLE EstateRegionLink (
|
||||
EstateRegionLinkID VARCHAR(36) NOT NULL,
|
||||
EstateID INT DEFAULT NULL,
|
||||
RegionID VARCHAR(36) DEFAULT NULL,
|
||||
PRIMARY KEY (EstateRegionLinkID)
|
||||
);
|
||||
|
||||
CREATE INDEX EstateRegionLinkEstateIDIndex ON EstateRegionLink (EstateID);
|
||||
CREATE INDEX EstateRegionLinkERegionIDIndex ON EstateRegionLink (RegionID);
|
||||
Reference in New Issue
Block a user