aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Data/SQLite/SQLiteInventoryStore.cs38
1 files changed, 36 insertions, 2 deletions
diff --git a/OpenSim/Data/SQLite/SQLiteInventoryStore.cs b/OpenSim/Data/SQLite/SQLiteInventoryStore.cs
index 2eb0ad5..5c53f32 100644
--- a/OpenSim/Data/SQLite/SQLiteInventoryStore.cs
+++ b/OpenSim/Data/SQLite/SQLiteInventoryStore.cs
@@ -74,12 +74,12 @@ namespace OpenSim.Data.SQLite
74 ds.Tables.Add(createInventoryFoldersTable()); 74 ds.Tables.Add(createInventoryFoldersTable());
75 invFoldersDa.Fill(ds.Tables["inventoryfolders"]); 75 invFoldersDa.Fill(ds.Tables["inventoryfolders"]);
76 setupFoldersCommands(invFoldersDa, conn); 76 setupFoldersCommands(invFoldersDa, conn);
77 m_log.Info("[DATASTORE]: Populated Intentory Folders Definitions"); 77 m_log.Info("[DATASTORE]: Populated Inventory Folders Definitions");
78 78
79 ds.Tables.Add(createInventoryItemsTable()); 79 ds.Tables.Add(createInventoryItemsTable());
80 invItemsDa.Fill(ds.Tables["inventoryitems"]); 80 invItemsDa.Fill(ds.Tables["inventoryitems"]);
81 setupItemsCommands(invItemsDa, conn); 81 setupItemsCommands(invItemsDa, conn);
82 m_log.Info("[DATASTORE]: Populated Intentory Items Definitions"); 82 m_log.Info("[DATASTORE]: Populated Inventory Items Definitions");
83 83
84 ds.AcceptChanges(); 84 ds.AcceptChanges();
85 } 85 }
@@ -651,6 +651,40 @@ namespace OpenSim.Data.SQLite
651 pDa.Fill(tmpDS, "inventoryitems"); 651 pDa.Fill(tmpDS, "inventoryitems");
652 sDa.Fill(tmpDS, "inventoryfolders"); 652 sDa.Fill(tmpDS, "inventoryfolders");
653 653
654 // Very clumsy way of checking whether we need to upgrade the database table version and then updating. Only
655 // putting up with this because this code should be blown away soon by nhibernate...
656 conn.Open();
657
658 SqliteCommand cmd;
659 try
660 {
661 cmd = new SqliteCommand("select salePrice from inventoryitems limit 1;", conn);
662 cmd.ExecuteNonQuery();
663 }
664 catch (SqliteSyntaxException)
665 {
666 m_log.Info("[DATASTORE]: Upgrading sqlite inventory database to version 2");
667
668 cmd = new SqliteCommand("alter table inventoryitems add column salePrice integer default 99;", conn);
669 cmd.ExecuteNonQuery();
670 cmd = new SqliteCommand("alter table inventoryitems add column saleType integer default 0;", conn);
671 cmd.ExecuteNonQuery();
672 cmd = new SqliteCommand("alter table inventoryitems add column creationDate integer default 2000;", conn);
673 cmd.ExecuteNonQuery();
674 cmd = new SqliteCommand("alter table inventoryitems add column groupID varchar(255) default '00000000-0000-0000-0000-000000000000';", conn);
675 cmd.ExecuteNonQuery();
676 cmd = new SqliteCommand("alter table inventoryitems add column groupOwned integer default 0;", conn);
677 cmd.ExecuteNonQuery();
678 cmd = new SqliteCommand("alter table inventoryitems add column flags integer default 0;", conn);
679 cmd.ExecuteNonQuery();
680
681 pDa.Fill(tmpDS, "inventoryitems");
682 }
683 finally
684 {
685 conn.Close();
686 }
687
654 foreach (DataColumn col in createInventoryItemsTable().Columns) 688 foreach (DataColumn col in createInventoryItemsTable().Columns)
655 { 689 {
656 if (! tmpDS.Tables["inventoryitems"].Columns.Contains(col.ColumnName)) 690 if (! tmpDS.Tables["inventoryitems"].Columns.Contains(col.ColumnName))