This commit is contained in:
2018-09-18 17:20:57 +00:00
parent 09c3d86e41
commit 32a358b96c
4 changed files with 62 additions and 3 deletions

View File

@@ -9,6 +9,8 @@ namespace AyaNova.Models
public partial class AyContext : DbContext
{
public virtual DbSet<Event> Event { get; set; }
public virtual DbSet<SearchDictionary> SearchDictionary { get; set; }
public virtual DbSet<SearchKey> SearchKey { get; set; }
public virtual DbSet<User> User { get; set; }
public virtual DbSet<UserOptions> UserOptions { get; set; }
public virtual DbSet<License> License { get; set; }

View File

@@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using AyaNova.Biz;
using System.ComponentModel.DataAnnotations;
namespace AyaNova.Models
{
public partial class SearchDictionary
{
public long Id { get; set; }
public uint ConcurrencyToken { get; set; }
[Required, MaxLength(255)]
public string Word { get; set; }//max 255 characters ascii set
}
}

View File

@@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
using AyaNova.Biz;
using System.ComponentModel.DataAnnotations;
namespace AyaNova.Models
{
public partial class SearchKey
{
public long Id { get; set; }
public uint ConcurrencyToken { get; set; }
[Required]
public long WordId { get; set; }
[Required]
public long ObjectId { get; set; }
[Required]
public AyaType ObjectType { get; set; }
public bool InName { get; set; }
}
}

View File

@@ -22,8 +22,8 @@ namespace AyaNova.Util
//!!!!WARNING: BE SURE TO UPDATE THE DbUtil::PrepareDatabaseForSeeding WHEN NEW TABLES ADDED!!!!
private const int DESIRED_SCHEMA_LEVEL = 9;
internal const long EXPECTED_COLUMN_COUNT = 90;
internal const long EXPECTED_INDEX_COUNT = 18;
internal const long EXPECTED_COLUMN_COUNT = 97;
internal const long EXPECTED_INDEX_COUNT = 20;
//!!!!WARNING: BE SURE TO UPDATE THE DbUtil::PrepareDatabaseForSeeding WHEN NEW TABLES ADDED!!!!
/////////////////////////////////////////////////////////////////
@@ -115,7 +115,8 @@ namespace AyaNova.Util
//************* SCHEMA UPDATES ******************
//////////////////////////////////////////////////
// USER table locale text and default data
// FOUNDATIONAL TABLES
//
if (currentSchema < 2)
{
LogUpdateMessage(log);
@@ -129,6 +130,15 @@ namespace AyaNova.Util
// exec("CREATE INDEX ayid_idx ON aevent (ayid);");
// exec("CREATE INDEX aytype_idx ON aevent (aytype);");
//Add the search key and dictionary tables
//TODO: Indexes determined through load testing and experimentation
//Too many indexes or unnecessary ones would be bad because this table is hit on every save / update of an object and would slow those ops
//too little is bad if search takes a dogs age to find anything
exec("CREATE TABLE asearchdictionary (id BIGSERIAL PRIMARY KEY, word varchar(255) not null)");
// exec("CREATE UNIQUE INDEX tagname_idx ON atag (name);");
exec("CREATE TABLE asearchkey (id BIGSERIAL PRIMARY KEY, wordid bigint not null REFERENCES asearchdictionary (id), objectid bigint not null, objecttype integer not null, inname bool not null)");
//create locale text tables
exec("CREATE TABLE alocale (id BIGSERIAL PRIMARY KEY, ownerid bigint not null, name varchar(255) not null, stock bool)");
exec("CREATE UNIQUE INDEX localename_idx ON alocale (name)");
@@ -138,6 +148,9 @@ namespace AyaNova.Util
//Load the default LOCALES
AyaNova.Biz.PrimeData.PrimeLocales(ct);
//Add user table
exec("CREATE TABLE auser (id BIGSERIAL PRIMARY KEY, ownerid bigint not null, active bool not null, name varchar(255) not null, " +
"login text not null, password text not null, salt text not null, roles integer not null, localeid bigint not null REFERENCES alocale (id), " +