mirror of
https://github.com/claunia/marechai.git
synced 2025-12-16 19:14:25 +00:00
Update to database version 6.
This commit is contained in:
@@ -178,7 +178,10 @@ namespace Cicm.Database
|
||||
IDbTransaction trans = dbCon.BeginTransaction();
|
||||
dbcmd.Transaction = trans;
|
||||
|
||||
const string SQL = "INSERT INTO companies (name)" + " VALUES (@name)";
|
||||
const string SQL = "INSERT INTO companies (name, founded, website, twitter, facebook, sold, sold_to, " +
|
||||
"address, city, province, postal_code, country) VALUES (@name, @founded, @website, " +
|
||||
"@twitter, @facebook, @sold, @sold_to, @address, @city, @province, @postal_code, " +
|
||||
"@country)";
|
||||
|
||||
dbcmd.CommandText = SQL;
|
||||
|
||||
@@ -210,7 +213,11 @@ namespace Cicm.Database
|
||||
IDbTransaction trans = dbCon.BeginTransaction();
|
||||
dbcmd.Transaction = trans;
|
||||
|
||||
string sql = "UPDATE companies SET name = @name " + $"WHERE id = {entry.Id}";
|
||||
string sql =
|
||||
"UPDATE companies SET name = @name, founded = @founded, website = @website, twitter = @twitter, " +
|
||||
"facebook = @facebook, sold = @sold, sold_to = @sold_to, address = @address, city = @city, " +
|
||||
"province = @province, postal_code = @postal_code, country = @country, " +
|
||||
$"WHERE id = {entry.Id}";
|
||||
|
||||
dbcmd.CommandText = sql;
|
||||
|
||||
@@ -251,20 +258,85 @@ namespace Cicm.Database
|
||||
{
|
||||
IDbCommand dbcmd = dbCon.CreateCommand();
|
||||
|
||||
IDbDataParameter param1 = dbcmd.CreateParameter();
|
||||
IDbDataParameter param1 = dbcmd.CreateParameter();
|
||||
IDbDataParameter param2 = dbcmd.CreateParameter();
|
||||
IDbDataParameter param3 = dbcmd.CreateParameter();
|
||||
IDbDataParameter param4 = dbcmd.CreateParameter();
|
||||
IDbDataParameter param5 = dbcmd.CreateParameter();
|
||||
IDbDataParameter param6 = dbcmd.CreateParameter();
|
||||
IDbDataParameter param7 = dbcmd.CreateParameter();
|
||||
IDbDataParameter param8 = dbcmd.CreateParameter();
|
||||
IDbDataParameter param9 = dbcmd.CreateParameter();
|
||||
IDbDataParameter param10 = dbcmd.CreateParameter();
|
||||
IDbDataParameter param11 = dbcmd.CreateParameter();
|
||||
IDbDataParameter param12 = dbcmd.CreateParameter();
|
||||
|
||||
param1.ParameterName = "@name";
|
||||
param1.ParameterName = "@name";
|
||||
param2.ParameterName = "@founded";
|
||||
param3.ParameterName = "@website";
|
||||
param4.ParameterName = "@twitter";
|
||||
param5.ParameterName = "@facebook";
|
||||
param6.ParameterName = "@sold";
|
||||
param7.ParameterName = "@sold_to";
|
||||
param8.ParameterName = "@address";
|
||||
param9.ParameterName = "@city";
|
||||
param10.ParameterName = "@province";
|
||||
param11.ParameterName = "@postal_code";
|
||||
param12.ParameterName = "@country";
|
||||
|
||||
param1.DbType = DbType.String;
|
||||
param1.DbType = DbType.String;
|
||||
param2.DbType = DbType.DateTime;
|
||||
param3.DbType = DbType.String;
|
||||
param4.DbType = DbType.String;
|
||||
param5.DbType = DbType.String;
|
||||
param6.DbType = DbType.DateTime;
|
||||
param7.DbType = DbType.UInt32;
|
||||
param8.DbType = DbType.String;
|
||||
param9.DbType = DbType.String;
|
||||
param10.DbType = DbType.String;
|
||||
param11.DbType = DbType.String;
|
||||
param12.DbType = DbType.UInt16;
|
||||
|
||||
param1.Value = entry.Name;
|
||||
param2.Value = entry.Founded;
|
||||
param3.Value = entry.Website;
|
||||
param4.Value = entry.Twitter;
|
||||
param5.Value = entry.Facebook;
|
||||
if(entry.SoldTo != null)
|
||||
{
|
||||
param6.Value = entry.Sold;
|
||||
param7.Value = entry.SoldTo.Id;
|
||||
}
|
||||
else
|
||||
{
|
||||
param6.Value = null;
|
||||
param7.Value = null;
|
||||
}
|
||||
|
||||
param8.Value = entry.Address;
|
||||
param9.Value = entry.City;
|
||||
param10.Value = entry.Province;
|
||||
param11.Value = entry.PostalCode;
|
||||
if(entry.Country != null) param12.Value = entry.Country.Id;
|
||||
else param12.Value = null;
|
||||
|
||||
dbcmd.Parameters.Add(param1);
|
||||
dbcmd.Parameters.Add(param2);
|
||||
dbcmd.Parameters.Add(param3);
|
||||
dbcmd.Parameters.Add(param4);
|
||||
dbcmd.Parameters.Add(param5);
|
||||
dbcmd.Parameters.Add(param6);
|
||||
dbcmd.Parameters.Add(param7);
|
||||
dbcmd.Parameters.Add(param8);
|
||||
dbcmd.Parameters.Add(param9);
|
||||
dbcmd.Parameters.Add(param10);
|
||||
dbcmd.Parameters.Add(param11);
|
||||
dbcmd.Parameters.Add(param12);
|
||||
|
||||
return dbcmd;
|
||||
}
|
||||
|
||||
static List<Company> CompaniesFromDataTable(DataTable dataTable)
|
||||
List<Company> CompaniesFromDataTable(DataTable dataTable)
|
||||
{
|
||||
List<Company> entries = new List<Company>();
|
||||
|
||||
@@ -272,10 +344,30 @@ namespace Cicm.Database
|
||||
{
|
||||
Company entry = new Company
|
||||
{
|
||||
Id = int.Parse(dataRow["id"].ToString()),
|
||||
Name = dataRow["name"].ToString()
|
||||
Id = int.Parse(dataRow["id"].ToString()),
|
||||
Name = dataRow["name"].ToString(),
|
||||
Website = dataRow["website"].ToString(),
|
||||
Twitter = dataRow["twitter"].ToString(),
|
||||
Facebook = dataRow["facebook"].ToString(),
|
||||
Address = dataRow["address"].ToString(),
|
||||
City = dataRow["city"].ToString(),
|
||||
Province = dataRow["province"].ToString(),
|
||||
PostalCode = dataRow["postal_code"].ToString()
|
||||
};
|
||||
|
||||
if(!string.IsNullOrWhiteSpace(dataRow["founded"].ToString()))
|
||||
entry.Founded = Convert.ToDateTime(dataRow["founded"].ToString());
|
||||
|
||||
if(!string.IsNullOrWhiteSpace(dataRow["sold"].ToString()) &&
|
||||
!string.IsNullOrWhiteSpace(dataRow["sold_to"].ToString()))
|
||||
{
|
||||
entry.Sold = Convert.ToDateTime(dataRow["sold"].ToString());
|
||||
entry.SoldTo = GetCompany(int.Parse(dataRow["sold_to"].ToString()));
|
||||
}
|
||||
|
||||
if(!string.IsNullOrWhiteSpace(dataRow["country"].ToString()))
|
||||
entry.Country = GetIso3166(int.Parse(dataRow["country"].ToString()));
|
||||
|
||||
entries.Add(entry);
|
||||
}
|
||||
|
||||
|
||||
@@ -49,79 +49,91 @@ namespace Cicm.Database
|
||||
IDbCommand dbCmd = dbCon.CreateCommand();
|
||||
|
||||
Console.WriteLine("Creating table `admins`");
|
||||
dbCmd.CommandText = V5.Admins;
|
||||
dbCmd.CommandText = V6.Admins;
|
||||
dbCmd.ExecuteNonQuery();
|
||||
|
||||
Console.WriteLine("Creating table `browser_tests`");
|
||||
dbCmd.CommandText = V5.BrowserTests;
|
||||
dbCmd.CommandText = V6.BrowserTests;
|
||||
dbCmd.ExecuteNonQuery();
|
||||
|
||||
Console.WriteLine("Creating table `cicm_db`");
|
||||
dbCmd.CommandText = V5.CicmDb;
|
||||
dbCmd.CommandText = V6.CicmDb;
|
||||
dbCmd.ExecuteNonQuery();
|
||||
|
||||
Console.WriteLine("Creating table `companies`");
|
||||
dbCmd.CommandText = V5.Companies;
|
||||
dbCmd.CommandText = V6.Companies;
|
||||
dbCmd.ExecuteNonQuery();
|
||||
|
||||
Console.WriteLine("Creating table `computers`");
|
||||
dbCmd.CommandText = V5.Computers;
|
||||
dbCmd.CommandText = V6.Computers;
|
||||
dbCmd.ExecuteNonQuery();
|
||||
|
||||
Console.WriteLine("Creating table `consoles`");
|
||||
dbCmd.CommandText = V5.Consoles;
|
||||
dbCmd.CommandText = V6.Consoles;
|
||||
dbCmd.ExecuteNonQuery();
|
||||
|
||||
Console.WriteLine("Creating table `disk_formats`");
|
||||
dbCmd.CommandText = V5.DiskFormats;
|
||||
dbCmd.CommandText = V6.DiskFormats;
|
||||
dbCmd.ExecuteNonQuery();
|
||||
|
||||
Console.WriteLine("Creating table `forbidden`");
|
||||
dbCmd.CommandText = V5.Forbidden;
|
||||
dbCmd.CommandText = V6.Forbidden;
|
||||
dbCmd.ExecuteNonQuery();
|
||||
|
||||
Console.WriteLine("Creating table `gpus`");
|
||||
dbCmd.CommandText = V5.Gpus;
|
||||
dbCmd.CommandText = V6.Gpus;
|
||||
dbCmd.ExecuteNonQuery();
|
||||
|
||||
Console.WriteLine("Creating table `log`");
|
||||
dbCmd.CommandText = V5.Logs;
|
||||
dbCmd.CommandText = V6.Logs;
|
||||
dbCmd.ExecuteNonQuery();
|
||||
|
||||
Console.WriteLine("Creating table `money_donations`");
|
||||
dbCmd.CommandText = V5.MoneyDonations;
|
||||
dbCmd.CommandText = V6.MoneyDonations;
|
||||
dbCmd.ExecuteNonQuery();
|
||||
|
||||
Console.WriteLine("Creating table `music_synths`");
|
||||
dbCmd.CommandText = V5.MusicSynths;
|
||||
dbCmd.CommandText = V6.MusicSynths;
|
||||
dbCmd.ExecuteNonQuery();
|
||||
|
||||
Console.WriteLine("Creating table `news`");
|
||||
dbCmd.CommandText = V5.News;
|
||||
dbCmd.CommandText = V6.News;
|
||||
dbCmd.ExecuteNonQuery();
|
||||
|
||||
Console.WriteLine("Creating table `owned_computers`");
|
||||
dbCmd.CommandText = V5.OwnedComputers;
|
||||
dbCmd.CommandText = V6.OwnedComputers;
|
||||
dbCmd.ExecuteNonQuery();
|
||||
|
||||
Console.WriteLine("Creating table `owned_consoles`");
|
||||
dbCmd.CommandText = V5.OwnedConsoles;
|
||||
dbCmd.CommandText = V6.OwnedConsoles;
|
||||
dbCmd.ExecuteNonQuery();
|
||||
|
||||
Console.WriteLine("Creating table `processors`");
|
||||
dbCmd.CommandText = V5.Processors;
|
||||
dbCmd.CommandText = V6.Processors;
|
||||
dbCmd.ExecuteNonQuery();
|
||||
|
||||
Console.WriteLine("Creating table `sound_synths`");
|
||||
dbCmd.CommandText = V5.SoundSynths;
|
||||
dbCmd.CommandText = V6.SoundSynths;
|
||||
dbCmd.ExecuteNonQuery();
|
||||
|
||||
Console.WriteLine("Creating table `iso3166_1_numeric`");
|
||||
dbCmd.CommandText = V6.Iso3166Numeric;
|
||||
dbCmd.ExecuteNonQuery();
|
||||
|
||||
Console.WriteLine("Filling table `iso3166_1_numeric`");
|
||||
dbCmd.CommandText = V6.Iso3166NumericValues;
|
||||
dbCmd.ExecuteNonQuery();
|
||||
|
||||
Console.WriteLine("Creating foreign keys for table `companies`");
|
||||
dbCmd.CommandText = V6.CompaniesForeignKeys;
|
||||
dbCmd.ExecuteNonQuery();
|
||||
|
||||
Console.WriteLine("Creating foreign keys for table `computers`");
|
||||
dbCmd.CommandText = V5.ComputersForeignKeys;
|
||||
dbCmd.CommandText = V6.ComputersForeignKeys;
|
||||
dbCmd.ExecuteNonQuery();
|
||||
|
||||
Console.WriteLine("Creating foreign keys for table `consoles`");
|
||||
dbCmd.CommandText = V5.ConsolesForeignKeys;
|
||||
dbCmd.CommandText = V6.ConsolesForeignKeys;
|
||||
dbCmd.ExecuteNonQuery();
|
||||
|
||||
return true;
|
||||
|
||||
285
Cicm.Database/Operations/Iso3166.cs
Normal file
285
Cicm.Database/Operations/Iso3166.cs
Normal file
@@ -0,0 +1,285 @@
|
||||
/******************************************************************************
|
||||
// Canary Islands Computer Museum Website
|
||||
// ----------------------------------------------------------------------------
|
||||
//
|
||||
// Filename : Iso3166.cs
|
||||
// Author(s) : Natalia Portillo <claunia@claunia.com>
|
||||
//
|
||||
// --[ Description ] ----------------------------------------------------------
|
||||
//
|
||||
// Contains operations to manage iso3166_1_numeric.
|
||||
//
|
||||
// --[ License ] --------------------------------------------------------------
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as
|
||||
// published by the Free Software Foundation, either version 3 of the
|
||||
// License, or (at your option) any later version.
|
||||
//
|
||||
// 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.gnu.org/licenses/>.
|
||||
//
|
||||
// ----------------------------------------------------------------------------
|
||||
// Copyright © 2003-2018 Natalia Portillo
|
||||
*******************************************************************************/
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using Cicm.Database.Schemas;
|
||||
using Console = System.Console;
|
||||
|
||||
namespace Cicm.Database
|
||||
{
|
||||
public partial class Operations
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets all ISO 3166-1 codes
|
||||
/// </summary>
|
||||
/// <param name="entries">All ISO 3166-1 codes</param>
|
||||
/// <returns><c>true</c> if <see cref="entries" /> is correct, <c>false</c> otherwise</returns>
|
||||
public bool GetIso3166(out List<Iso3166> entries)
|
||||
{
|
||||
#if DEBUG
|
||||
Console.WriteLine("Getting all ISO 3166-1 codes...");
|
||||
#endif
|
||||
|
||||
try
|
||||
{
|
||||
const string SQL = "SELECT * from iso3166_1_numeric";
|
||||
|
||||
IDbCommand dbCmd = dbCon.CreateCommand();
|
||||
IDbDataAdapter dataAdapter = dbCore.GetNewDataAdapter();
|
||||
dbCmd.CommandText = SQL;
|
||||
DataSet dataSet = new DataSet();
|
||||
dataAdapter.SelectCommand = dbCmd;
|
||||
dataAdapter.Fill(dataSet);
|
||||
|
||||
entries = Iso3166FromDataTable(dataSet.Tables[0]);
|
||||
|
||||
return true;
|
||||
}
|
||||
catch(Exception ex)
|
||||
{
|
||||
Console.WriteLine("Error getting ISO 3166-1 codes.");
|
||||
Console.WriteLine(ex);
|
||||
entries = null;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the specified number of ISO 3166-1 codes since the specified start
|
||||
/// </summary>
|
||||
/// <param name="entries">List of ISO 3166-1 codes</param>
|
||||
/// <param name="start">Start of query</param>
|
||||
/// <param name="count">How many entries to retrieve</param>
|
||||
/// <returns><c>true</c> if <see cref="entries" /> is correct, <c>false</c> otherwise</returns>
|
||||
public bool GetIso3166(out List<Iso3166> entries, ulong start, ulong count)
|
||||
{
|
||||
#if DEBUG
|
||||
Console.WriteLine("Getting {0} ISO 3166-1 codes from {1}...", count, start);
|
||||
#endif
|
||||
|
||||
try
|
||||
{
|
||||
string sql = $"SELECT * FROM iso3166_1_numeric LIMIT {start}, {count}";
|
||||
|
||||
IDbCommand dbCmd = dbCon.CreateCommand();
|
||||
IDbDataAdapter dataAdapter = dbCore.GetNewDataAdapter();
|
||||
dbCmd.CommandText = sql;
|
||||
DataSet dataSet = new DataSet();
|
||||
dataAdapter.SelectCommand = dbCmd;
|
||||
dataAdapter.Fill(dataSet);
|
||||
|
||||
entries = Iso3166FromDataTable(dataSet.Tables[0]);
|
||||
|
||||
return true;
|
||||
}
|
||||
catch(Exception ex)
|
||||
{
|
||||
Console.WriteLine("Error getting ISO 3166-1 codes.");
|
||||
Console.WriteLine(ex);
|
||||
entries = null;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets ISO 3166-1 code by specified id
|
||||
/// </summary>
|
||||
/// <param name="id">Id</param>
|
||||
/// <returns>ISO 3166-1 code with specified id, <c>null</c> if not found or error</returns>
|
||||
public Iso3166 GetIso3166(int id)
|
||||
{
|
||||
#if DEBUG
|
||||
Console.WriteLine("Getting ISO 3166-1 code with id {0}...", id);
|
||||
#endif
|
||||
|
||||
try
|
||||
{
|
||||
string sql = $"SELECT * from iso3166_1_numeric WHERE id = '{id}'";
|
||||
|
||||
IDbCommand dbCmd = dbCon.CreateCommand();
|
||||
IDbDataAdapter dataAdapter = dbCore.GetNewDataAdapter();
|
||||
dbCmd.CommandText = sql;
|
||||
DataSet dataSet = new DataSet();
|
||||
dataAdapter.SelectCommand = dbCmd;
|
||||
dataAdapter.Fill(dataSet);
|
||||
|
||||
List<Iso3166> entries = Iso3166FromDataTable(dataSet.Tables[0]);
|
||||
|
||||
return entries == null || entries.Count == 0 ? null : entries[0];
|
||||
}
|
||||
catch(Exception ex)
|
||||
{
|
||||
Console.WriteLine("Error getting ISO 3166-1 code.");
|
||||
Console.WriteLine(ex);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Counts the number of ISO 3166-1 codes in the database
|
||||
/// </summary>
|
||||
/// <returns>Entries in database</returns>
|
||||
public long CountIso3166()
|
||||
{
|
||||
#if DEBUG
|
||||
Console.WriteLine("Counting ISO 3166-1 codes...");
|
||||
#endif
|
||||
|
||||
IDbCommand dbcmd = dbCon.CreateCommand();
|
||||
dbcmd.CommandText = "SELECT COUNT(*) FROM iso3166_1_numeric";
|
||||
object count = dbcmd.ExecuteScalar();
|
||||
dbcmd.Dispose();
|
||||
try { return Convert.ToInt64(count); }
|
||||
catch { return 0; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adds a new ISO 3166-1 code to the database
|
||||
/// </summary>
|
||||
/// <param name="entry">Entry to add</param>
|
||||
/// <param name="id">ID of added entry</param>
|
||||
/// <returns><c>true</c> if added correctly, <c>false</c> otherwise</returns>
|
||||
public bool AddIso3166(Iso3166 entry, out long id)
|
||||
{
|
||||
#if DEBUG
|
||||
Console.Write("Adding ISO 3166-1 code `{0}`...", entry.Name);
|
||||
#endif
|
||||
|
||||
IDbCommand dbcmd = GetCommandIso3166(entry);
|
||||
IDbTransaction trans = dbCon.BeginTransaction();
|
||||
dbcmd.Transaction = trans;
|
||||
|
||||
const string SQL = "INSERT INTO iso3166_1_numeric (name)" + " VALUES (@name)";
|
||||
|
||||
dbcmd.CommandText = SQL;
|
||||
|
||||
dbcmd.ExecuteNonQuery();
|
||||
trans.Commit();
|
||||
dbcmd.Dispose();
|
||||
|
||||
id = dbCore.LastInsertRowId;
|
||||
|
||||
#if DEBUG
|
||||
Console.WriteLine(" id {0}", id);
|
||||
#endif
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Updates an ISO 3166-1 code in the database
|
||||
/// </summary>
|
||||
/// <param name="entry">Updated entry</param>
|
||||
/// <returns><c>true</c> if updated correctly, <c>false</c> otherwise</returns>
|
||||
public bool UpdateIso3166(Iso3166 entry)
|
||||
{
|
||||
#if DEBUG
|
||||
Console.WriteLine("Updating ISO 3166-1 code `{0}`...", entry.Name);
|
||||
#endif
|
||||
|
||||
IDbCommand dbcmd = GetCommandIso3166(entry);
|
||||
IDbTransaction trans = dbCon.BeginTransaction();
|
||||
dbcmd.Transaction = trans;
|
||||
|
||||
string sql = "UPDATE iso3166_1_numeric SET name = @name " + $"WHERE id = {entry.Id}";
|
||||
|
||||
dbcmd.CommandText = sql;
|
||||
|
||||
dbcmd.ExecuteNonQuery();
|
||||
trans.Commit();
|
||||
dbcmd.Dispose();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Removes an ISO 3166-1 code from the database
|
||||
/// </summary>
|
||||
/// <param name="id">ID of entry to remove</param>
|
||||
/// <returns><c>true</c> if removed correctly, <c>false</c> otherwise</returns>
|
||||
public bool RemoveIso3166(long id)
|
||||
{
|
||||
#if DEBUG
|
||||
Console.WriteLine("Removing ISO 3166-1 code `{0}`...", id);
|
||||
#endif
|
||||
|
||||
IDbCommand dbcmd = dbCon.CreateCommand();
|
||||
IDbTransaction trans = dbCon.BeginTransaction();
|
||||
dbcmd.Transaction = trans;
|
||||
|
||||
string sql = $"DELETE FROM iso3166_1_numeric WHERE id = '{id}';";
|
||||
|
||||
dbcmd.CommandText = sql;
|
||||
|
||||
dbcmd.ExecuteNonQuery();
|
||||
trans.Commit();
|
||||
dbcmd.Dispose();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
IDbCommand GetCommandIso3166(Iso3166 entry)
|
||||
{
|
||||
IDbCommand dbcmd = dbCon.CreateCommand();
|
||||
|
||||
IDbDataParameter param1 = dbcmd.CreateParameter();
|
||||
|
||||
param1.ParameterName = "@name";
|
||||
|
||||
param1.DbType = DbType.String;
|
||||
|
||||
param1.Value = entry.Name;
|
||||
|
||||
dbcmd.Parameters.Add(param1);
|
||||
|
||||
return dbcmd;
|
||||
}
|
||||
|
||||
static List<Iso3166> Iso3166FromDataTable(DataTable dataTable)
|
||||
{
|
||||
List<Iso3166> entries = new List<Iso3166>();
|
||||
|
||||
foreach(DataRow dataRow in dataTable.Rows)
|
||||
{
|
||||
Iso3166 entry = new Iso3166
|
||||
{
|
||||
Id = ushort.Parse(dataRow["id"].ToString()),
|
||||
Name = dataRow["name"].ToString()
|
||||
};
|
||||
|
||||
entries.Add(entry);
|
||||
}
|
||||
|
||||
return entries;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -35,7 +35,7 @@ namespace Cicm.Database
|
||||
public partial class Operations
|
||||
{
|
||||
/// <summary>Last known database version</summary>
|
||||
const int DB_VERSION = 5;
|
||||
const int DB_VERSION = 6;
|
||||
|
||||
readonly IDbConnection dbCon;
|
||||
readonly IDbCore dbCore;
|
||||
|
||||
@@ -33,7 +33,6 @@ using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.IO;
|
||||
using Cicm.Database.Schemas.Sql;
|
||||
using MySql.Data.MySqlClient;
|
||||
|
||||
namespace Cicm.Database
|
||||
{
|
||||
@@ -81,17 +80,22 @@ namespace Cicm.Database
|
||||
{
|
||||
case 2:
|
||||
{
|
||||
UpdateDatabaseV2ToV3();
|
||||
UpdateDatabaseToV3();
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
UpdateDatabaseV3ToV4();
|
||||
UpdateDatabaseToV4();
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
{
|
||||
UpdateDatabaseV4ToV5();
|
||||
UpdateDatabaseToV5();
|
||||
break;
|
||||
}
|
||||
case 5:
|
||||
{
|
||||
UpdateDatabaseToV6();
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -100,7 +104,7 @@ namespace Cicm.Database
|
||||
return true;
|
||||
}
|
||||
|
||||
void UpdateDatabaseV2ToV3()
|
||||
void UpdateDatabaseToV3()
|
||||
{
|
||||
Console.WriteLine("Updating database to version 3");
|
||||
|
||||
@@ -373,7 +377,7 @@ namespace Cicm.Database
|
||||
Console.WriteLine("Finished update version to 3...");
|
||||
}
|
||||
|
||||
void UpdateDatabaseV3ToV4()
|
||||
void UpdateDatabaseToV4()
|
||||
{
|
||||
Console.WriteLine("Updating database to version 4");
|
||||
IDbCommand dbCmd;
|
||||
@@ -640,7 +644,7 @@ namespace Cicm.Database
|
||||
dbCmd.Dispose();
|
||||
}
|
||||
|
||||
void UpdateDatabaseV4ToV5()
|
||||
void UpdateDatabaseToV5()
|
||||
{
|
||||
Console.WriteLine("Updating database to version 5");
|
||||
|
||||
@@ -663,6 +667,84 @@ namespace Cicm.Database
|
||||
dbCmd.Dispose();
|
||||
}
|
||||
|
||||
void UpdateDatabaseToV6()
|
||||
{
|
||||
Console.WriteLine("Updating database to version 6");
|
||||
|
||||
Console.WriteLine("Creating table `iso3166_1_numeric`");
|
||||
IDbCommand dbCmd = dbCon.CreateCommand();
|
||||
IDbTransaction trans = dbCon.BeginTransaction();
|
||||
dbCmd.Transaction = trans;
|
||||
dbCmd.CommandText = V6.Iso3166Numeric;
|
||||
dbCmd.ExecuteNonQuery();
|
||||
trans.Commit();
|
||||
dbCmd.Dispose();
|
||||
|
||||
Console.WriteLine("Filling table `iso3166_1_numeric`");
|
||||
dbCmd = dbCon.CreateCommand();
|
||||
trans = dbCon.BeginTransaction();
|
||||
dbCmd.Transaction = trans;
|
||||
dbCmd.CommandText = V6.Iso3166NumericValues;
|
||||
dbCmd.ExecuteNonQuery();
|
||||
trans.Commit();
|
||||
dbCmd.Dispose();
|
||||
|
||||
Console.WriteLine("Adding new columns to table `companies`");
|
||||
dbCmd = dbCon.CreateCommand();
|
||||
trans = dbCon.BeginTransaction();
|
||||
dbCmd.Transaction = trans;
|
||||
dbCmd.CommandText = "ALTER TABLE `companies` ADD COLUMN `founded` DATETIME NULL;\n" +
|
||||
"ALTER TABLE `companies` ADD COLUMN `website` VARCHAR(255) NULL;\n" +
|
||||
"ALTER TABLE `companies` ADD COLUMN `twitter` VARCHAR(45) NULL;\n" +
|
||||
"ALTER TABLE `companies` ADD COLUMN `facebook` VARCHAR(45) NULL;\n" +
|
||||
"ALTER TABLE `companies` ADD COLUMN `sold` DATETIME NULL;\n" +
|
||||
"ALTER TABLE `companies` ADD COLUMN `sold_to` INT(11) NULL;\n" +
|
||||
"ALTER TABLE `companies` ADD COLUMN `address` VARCHAR(80) NULL;\n" +
|
||||
"ALTER TABLE `companies` ADD COLUMN `city` VARCHAR(80) NULL;\n" +
|
||||
"ALTER TABLE `companies` ADD COLUMN `province` VARCHAR(80) NULL;\n" +
|
||||
"ALTER TABLE `companies` ADD COLUMN `postal_code` VARCHAR(25) NULL;\n" +
|
||||
"ALTER TABLE `companies` ADD COLUMN `country` SMALLINT(3) UNSIGNED ZEROFILL NULL;";
|
||||
dbCmd.ExecuteNonQuery();
|
||||
trans.Commit();
|
||||
dbCmd.Dispose();
|
||||
|
||||
Console.WriteLine("Adding new indexes to table `companies`");
|
||||
dbCmd = dbCon.CreateCommand();
|
||||
trans = dbCon.BeginTransaction();
|
||||
dbCmd.Transaction = trans;
|
||||
dbCmd.CommandText = "CREATE INDEX `idx_companies_founded` ON `companies` (`founded`);\n" +
|
||||
"CREATE INDEX `idx_companies_website` ON `companies` (`website`);\n" +
|
||||
"CREATE INDEX `idx_companies_twitter` ON `companies` (`twitter`);\n" +
|
||||
"CREATE INDEX `idx_companies_facebook` ON `companies` (`facebook`);\n" +
|
||||
"CREATE INDEX `idx_companies_sold` ON `companies` (`sold`);\n" +
|
||||
"CREATE INDEX `idx_companies_sold_to` ON `companies` (`sold_to`);\n" +
|
||||
"CREATE INDEX `idx_companies_address` ON `companies` (`address`);\n" +
|
||||
"CREATE INDEX `idx_companies_city` ON `companies` (`city`);\n" +
|
||||
"CREATE INDEX `idx_companies_province` ON `companies` (`province`);\n" +
|
||||
"CREATE INDEX `idx_companies_postal_code` ON `companies` (`postal_code`);\n" +
|
||||
"CREATE INDEX `idx_companies_country` ON `companies` (`country`);";
|
||||
dbCmd.ExecuteNonQuery();
|
||||
trans.Commit();
|
||||
dbCmd.Dispose();
|
||||
|
||||
Console.WriteLine("Adding new foreign keys to table `companies`");
|
||||
dbCmd = dbCon.CreateCommand();
|
||||
trans = dbCon.BeginTransaction();
|
||||
dbCmd.Transaction = trans;
|
||||
dbCmd.CommandText =
|
||||
"ALTER TABLE `companies` ADD FOREIGN KEY `fk_companies_sold_to` (sold_to) REFERENCES `companies` (`id`);\n" +
|
||||
"ALTER TABLE `companies` ADD FOREIGN KEY `fk_companies_country` (country) REFERENCES `iso3166_1_numeric` (`id`);";
|
||||
dbCmd.ExecuteNonQuery();
|
||||
trans.Commit();
|
||||
dbCmd.Dispose();
|
||||
|
||||
Console.WriteLine("Setting new database version to 6...");
|
||||
dbCmd = dbCon.CreateCommand();
|
||||
dbCmd.CommandText = "INSERT INTO cicm_db (version) VALUES ('6')";
|
||||
dbCmd.ExecuteNonQuery();
|
||||
dbCmd.Dispose();
|
||||
}
|
||||
|
||||
void OptimizeDatabase()
|
||||
{
|
||||
IDbCommand dbCmd = dbCon.CreateCommand();
|
||||
|
||||
@@ -28,14 +28,38 @@
|
||||
// Copyright © 2003-2018 Natalia Portillo
|
||||
*******************************************************************************/
|
||||
|
||||
using System;
|
||||
|
||||
namespace Cicm.Database.Schemas
|
||||
{
|
||||
/// <summary>Company</summary>
|
||||
public class Company
|
||||
{
|
||||
/// <summary>Address</summary>
|
||||
public string Address;
|
||||
/// <summary>City</summary>
|
||||
public string City;
|
||||
/// <summary>Country</summary>
|
||||
public Iso3166 Country;
|
||||
/// <summary>Facebook account</summary>
|
||||
public string Facebook;
|
||||
/// <summary>Founding date</summary>
|
||||
public DateTime Founded;
|
||||
/// <summary>ID</summary>
|
||||
public int Id;
|
||||
/// <summary>Name</summary>
|
||||
public string Name;
|
||||
/// <summary>Postal code</summary>
|
||||
public string PostalCode;
|
||||
/// <summary>Province</summary>
|
||||
public string Province;
|
||||
/// <summary>Sold date</summary>
|
||||
public DateTime Sold;
|
||||
/// <summary>Company it was sold to</summary>
|
||||
public Company SoldTo;
|
||||
/// <summary>Twitter account</summary>
|
||||
public string Twitter;
|
||||
/// <summary>Website</summary>
|
||||
public string Website;
|
||||
}
|
||||
}
|
||||
41
Cicm.Database/Schemas/Iso3166.cs
Normal file
41
Cicm.Database/Schemas/Iso3166.cs
Normal file
@@ -0,0 +1,41 @@
|
||||
/******************************************************************************
|
||||
// Canary Islands Computer Museum Website
|
||||
// ----------------------------------------------------------------------------
|
||||
//
|
||||
// Filename : Iso3166.cs
|
||||
// Author(s) : Natalia Portillo <claunia@claunia.com>
|
||||
//
|
||||
// --[ Description ] ----------------------------------------------------------
|
||||
//
|
||||
// High level representation of a ISO 3166-1 Numeric.
|
||||
//
|
||||
// --[ License ] --------------------------------------------------------------
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as
|
||||
// published by the Free Software Foundation, either version 3 of the
|
||||
// License, or (at your option) any later version.
|
||||
//
|
||||
// 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.gnu.org/licenses/>.
|
||||
//
|
||||
// ----------------------------------------------------------------------------
|
||||
// Copyright © 2003-2018 Natalia Portillo
|
||||
*******************************************************************************/
|
||||
|
||||
namespace Cicm.Database.Schemas
|
||||
{
|
||||
/// <summary>Country code from ISO 3166-1 Numeric</summary>
|
||||
public class Iso3166
|
||||
{
|
||||
/// <summary>ISO assigned ID</summary>
|
||||
public ushort Id;
|
||||
/// <summary>English name</summary>
|
||||
public string Name;
|
||||
}
|
||||
}
|
||||
177
Cicm.Database/Schemas/Sql/V6.cs
Normal file
177
Cicm.Database/Schemas/Sql/V6.cs
Normal file
@@ -0,0 +1,177 @@
|
||||
/******************************************************************************
|
||||
// Canary Islands Computer Museum Website
|
||||
// ----------------------------------------------------------------------------
|
||||
//
|
||||
// Filename : V6.cs
|
||||
// Author(s) : Natalia Portillo <claunia@claunia.com>
|
||||
//
|
||||
// --[ Description ] ----------------------------------------------------------
|
||||
//
|
||||
// Contains SQL queries to create the database version 6.
|
||||
//
|
||||
// --[ License ] --------------------------------------------------------------
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as
|
||||
// published by the Free Software Foundation, either version 3 of the
|
||||
// License, or (at your option) any later version.
|
||||
//
|
||||
// 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.gnu.org/licenses/>.
|
||||
//
|
||||
// ----------------------------------------------------------------------------
|
||||
// Copyright © 2003-2018 Natalia Portillo
|
||||
*******************************************************************************/
|
||||
|
||||
namespace Cicm.Database.Schemas.Sql
|
||||
{
|
||||
public static class V6
|
||||
{
|
||||
public static readonly string Admins = V5.Admins;
|
||||
|
||||
public static readonly string BrowserTests = V5.BrowserTests;
|
||||
|
||||
public static readonly string CicmDb = "CREATE TABLE `cicm_db` (\n" +
|
||||
"`id` int(11) NOT NULL AUTO_INCREMENT,\n" +
|
||||
"`version` int(11) NOT NULL,\n" +
|
||||
"`updated` datetime DEFAULT CURRENT_TIMESTAMP,\n" +
|
||||
"PRIMARY KEY (`id`)\n" + ");\n" +
|
||||
"INSERT INTO cicm_db (version) VALUES ('6');";
|
||||
|
||||
public static readonly string Companies = "CREATE TABLE `companies` (\n" +
|
||||
"`id` int(11) NOT NULL AUTO_INCREMENT,\n" +
|
||||
"`name` varchar(128) NOT NULL DEFAULT '',\n" +
|
||||
"`founded` datetime DEFAULT NULL,\n" +
|
||||
"`website` varchar(255) DEFAULT NULL,\n" +
|
||||
"`twitter` varchar(45) DEFAULT NULL,\n" +
|
||||
"`facebook` varchar(45) DEFAULT NULL,\n" +
|
||||
"`sold` datetime DEFAULT NULL,\n" +
|
||||
"`sold_to` int(11) DEFAULT NULL,\n" +
|
||||
"`address` varchar(80) DEFAULT NULL,\n" +
|
||||
"`city` varchar(80) DEFAULT NULL,\n" +
|
||||
"`province` varchar(80) DEFAULT NULL,\n" +
|
||||
"`postal_code` varchar(25) DEFAULT NULL,\n" +
|
||||
"`country` smallint(3) UNSIGNED ZEROFILL DEFAULT NULL,\n" +
|
||||
"PRIMARY KEY (`id`),\n" +
|
||||
"KEY `idx_companies_name` (`name`),\n" +
|
||||
"KEY `idx_companies_founded` (`founded`),\n" +
|
||||
"KEY `idx_companies_website` (`website`),\n" +
|
||||
"KEY `idx_companies_twitter` (`twitter`),\n" +
|
||||
"KEY `idx_companies_facebook` (`facebook`),\n" +
|
||||
"KEY `idx_companies_sold` (`sold`),\n" +
|
||||
"KEY `idx_companies_sold_to` (`sold_to`),\n" +
|
||||
"KEY `idx_companies_address` (`address`),\n" +
|
||||
"KEY `idx_companies_city` (`city`),\n" +
|
||||
"KEY `idx_companies_province` (`province`),\n" +
|
||||
"KEY `idx_companies_postal_code` (`postal_code`),\n" +
|
||||
"KEY `idx_companies_country` (`country`));";
|
||||
|
||||
public static readonly string Computers = V5.Computers;
|
||||
|
||||
public static readonly string Consoles = V5.Consoles;
|
||||
|
||||
public static readonly string DiskFormats = V5.DiskFormats;
|
||||
|
||||
public static readonly string Forbidden = V5.Forbidden;
|
||||
|
||||
public static readonly string Gpus = V5.Gpus;
|
||||
|
||||
public static readonly string Logs = V5.Logs;
|
||||
|
||||
public static readonly string MoneyDonations = V5.MoneyDonations;
|
||||
|
||||
public static readonly string MusicSynths = V5.MusicSynths;
|
||||
|
||||
public static readonly string News = V5.News;
|
||||
|
||||
public static readonly string OwnedComputers = V5.OwnedComputers;
|
||||
|
||||
public static readonly string OwnedConsoles = V5.OwnedConsoles;
|
||||
|
||||
public static readonly string Processors = V5.Processors;
|
||||
|
||||
public static readonly string SoundSynths = V5.SoundSynths;
|
||||
|
||||
public static readonly string ComputersForeignKeys = V5.ComputersForeignKeys;
|
||||
|
||||
public static readonly string ConsolesForeignKeys = V5.ConsolesForeignKeys;
|
||||
|
||||
public static readonly string Iso3166Numeric = "CREATE TABLE `iso3166_1_numeric` (\n" +
|
||||
"`id` SMALLINT(3) UNSIGNED ZEROFILL NOT NULL,\n" +
|
||||
"`name` VARCHAR(64) NOT NULL,\n" +
|
||||
"PRIMARY KEY (`id`),\n" +
|
||||
"INDEX `idx_name` (`name` ASC));";
|
||||
|
||||
public static readonly string Iso3166NumericValues =
|
||||
"INSERT INTO `iso3166_1_numeric` VALUES (004,'Afghanistan'),(248,'Åland Islands'),(008,'Albania')," +
|
||||
"(012,'Algeria'),(016,'American Samoa'),(020,'Andorra'),(024,'Angola'),(660,'Anguilla'),(010,'Antarctica')," +
|
||||
"(028,'Antigua and Barbuda'),(032,'Argentina'),(051,'Armenia'),(533,'Aruba'),(036,'Australia')," +
|
||||
"(040,'Austria'),(031,'Azerbaijan'),(044,'Bahamas'),(048,'Bahrain'),(050,'Bangladesh'),(052,'Barbados')," +
|
||||
"(112,'Belarus'),(056,'Belgium'),(084,'Belize'),(204,'Benin'),(060,'Bermuda'),(064,'Bhutan')," +
|
||||
"(862,'Bolivarian Republic of Venezuela'),(535,'Bonaire, Sint Eustatius and Saba')," +
|
||||
"(070,'Bosnia and Herzegovina'),(072,'Botswana'),(074,'Bouvet Island'),(076,'Brazil')," +
|
||||
"(080,'British Antarctic Territory'),(086,'British Indian Ocean Territory'),(092,'British Virgin Islands')," +
|
||||
"(096,'Brunei Darussalam'),(100,'Bulgaria'),(854,'Burkina Faso'),(108,'Burundi'),(132,'Cabo Verde')," +
|
||||
"(116,'Cambodia'),(120,'Cameroon'),(124,'Canada'),(128,'Canton and Enderbury Islands')," +
|
||||
"(136,'Cayman Islands'),(140,'Central African Republic'),(148,'Chad'),(830,'Channel Islands'),(152,'Chile')," +
|
||||
"(156,'China'),(162,'Christmas Island'),(166,'Cocos (Keeling) Islands'),(170,'Colombia'),(174,'Comoros')," +
|
||||
"(178,'Congo'),(184,'Cook Islands'),(188,'Costa Rica'),(384,'Côte d\\'Ivoire'),(191,'Croatia'),(192,'Cuba')," +
|
||||
"(531,'Curaçao'),(196,'Cyprus'),(203,'Czechia'),(200,'Czechoslovakia')," +
|
||||
"(408,'Democratic People\\'s Republic of Korea'),(180,'Democratic Republic of the Congo')," +
|
||||
"(720,'Democratic Yemen'),(208,'Denmark'),(262,'Djibouti'),(212,'Dominica'),(214,'Dominican Republic')," +
|
||||
"(216,'Dronning Maud Land'),(218,'Ecuador'),(818,'Egypt'),(222,'El Salvador'),(226,'Equatorial Guinea')," +
|
||||
"(232,'Eritrea'),(233,'Estonia'),(230,'Ethiopia'),(231,'Ethiopia'),(238,'Falkland Islands (Malvinas)')," +
|
||||
"(234,'Faroe Islands'),(280,'Federal Republic of Germany'),(583,'Federated States of Micronesia')," +
|
||||
"(242,'Fiji'),(246,'Finland'),(250,'France'),(249,'France, Metropolitan'),(254,'French Guiana')," +
|
||||
"(258,'French Polynesia'),(260,'French Southern Territories'),(266,'Gabon'),(270,'Gambia')," +
|
||||
"(274,'Gaza Strip (Palestine)'),(268,'Georgia'),(278,'German Democratic Republic'),(276,'Germany')," +
|
||||
"(288,'Ghana'),(292,'Gibraltar'),(300,'Greece'),(304,'Greenland'),(308,'Grenada'),(312,'Guadeloupe')," +
|
||||
"(316,'Guam'),(320,'Guatemala'),(831,'Guernsey'),(324,'Guinea'),(624,'Guinea-Bissau'),(328,'Guyana')," +
|
||||
"(332,'Haiti'),(334,'Heard Island and McDonald Islands'),(336,'Holy See'),(340,'Honduras')," +
|
||||
"(344,'Hong Kong'),(348,'Hungary'),(352,'Iceland'),(356,'India'),(360,'Indonesia'),(368,'Iraq')," +
|
||||
"(372,'Ireland'),(364,'Islamic Republic of Iran'),(833,'Isle of Man'),(376,'Israel'),(380,'Italy')," +
|
||||
"(388,'Jamaica'),(392,'Japan'),(832,'Jersey'),(396,'Johnston Island'),(400,'Jordan'),(398,'Kazakhstan')," +
|
||||
"(404,'Kenya'),(296,'Kiribati'),(414,'Kuwait'),(417,'Kyrgyzstan'),(418,'Lao People\\'s Democratic Republic')," +
|
||||
"(428,'Latvia'),(422,'Lebanon'),(426,'Lesotho'),(430,'Liberia'),(434,'Libya'),(438,'Liechtenstein')," +
|
||||
"(440,'Lithuania'),(442,'Luxembourg'),(446,'Macao'),(450,'Madagascar'),(454,'Malawi'),(458,'Malaysia')," +
|
||||
"(462,'Maldives'),(466,'Mali'),(470,'Malta'),(584,'Marshall Islands'),(474,'Martinique'),(478,'Mauritania')," +
|
||||
"(480,'Mauritius'),(175,'Mayotte'),(484,'Mexico'),(488,'Midway Islands'),(492,'Monaco'),(496,'Mongolia')," +
|
||||
"(499,'Montenegro'),(500,'Montserrat'),(504,'Morocco'),(508,'Mozambique'),(104,'Myanmar'),(516,'Namibia')," +
|
||||
"(520,'Nauru'),(524,'Nepal'),(528,'Netherlands'),(530,'Netherlands Antilles'),(532,'Netherlands Antilles')," +
|
||||
"(536,'Neutral Zone'),(540,'New Caledonia'),(554,'New Zealand'),(558,'Nicaragua'),(562,'Niger')," +
|
||||
"(566,'Nigeria'),(570,'Niue'),(574,'Norfolk Island'),(580,'Northern Mariana Islands'),(578,'Norway')," +
|
||||
"(512,'Oman'),(586,'Pakistan'),(585,'Palau'),(590,'Panama'),(591,'Panama'),(594,'Panama Canal Zone')," +
|
||||
"(598,'Papua New Guinea'),(600,'Paraguay'),(604,'Peru'),(608,'Philippines'),(612,'Pitcairn')," +
|
||||
"(068,'Plurinational State of Bolivia'),(616,'Poland'),(620,'Portugal'),(630,'Puerto Rico'),(634,'Qatar')," +
|
||||
"(410,'Republic of Korea'),(498,'Republic of Moldova'),(714,'Republic of Viet-Nam'),(638,'Réunion')," +
|
||||
"(642,'Romania'),(643,'Russian Federation'),(646,'Rwanda'),(650,'Ryukyu Islands'),(652,'Saint Barthélemy')," +
|
||||
"(654,'Saint Helena, Ascension and Tristan da Cunha'),(659,'Saint Kitts and Nevis')," +
|
||||
"(658,'Saint Kitts-Nevis-Anguilla'),(662,'Saint Lucia'),(663,'Saint Martin')," +
|
||||
"(666,'Saint Pierre and Miquelon'),(670,'Saint Vincent and the Grenadines'),(882,'Samoa')," +
|
||||
"(674,'San Marino'),(678,'Sao Tome and Principe'),(682,'Saudi Arabia'),(686,'Senegal'),(688,'Serbia')," +
|
||||
"(891,'Serbia and Montenegro'),(690,'Seychelles'),(694,'Sierra Leone'),(698,'Sikkim'),(702,'Singapore')," +
|
||||
"(534,'Sint Marteen'),(703,'Slovakia'),(705,'Slovenia'),(890,'Socialist Federal Republic of Yugoslavia')," +
|
||||
"(090,'Solomon Islands'),(706,'Somalia'),(710,'South Africa')," +
|
||||
"(239,'South Georgia and the South Sandwich Islands'),(728,'South Sudan'),(724,'Spain'),(144,'Sri Lanka')," +
|
||||
"(275,'State of Palestine'),(729,'Sudan'),(736,'Sudan'),(740,'Suriname'),(744,'Svalbard and Jan Mayen')," +
|
||||
"(748,'Swaziland'),(752,'Sweden'),(756,'Switzerland'),(760,'Syrian Arab Republic')," +
|
||||
"(158,'Taiwan, Province of China'),(762,'Tajikistan'),(764,'Thailand')," +
|
||||
"(807,'The former Yugoslav Republic of Macedonia'),(626,'Timor-Leste'),(768,'Togo'),(772,'Tokelau')," +
|
||||
"(776,'Tonga'),(780,'Trinidad and Tobago'),(582,'Trust Territory of the Pacific Islands'),(788,'Tunisia')," +
|
||||
"(792,'Turkey'),(795,'Turkmenistan'),(796,'Turks and Caicos Islands'),(798,'Tuvalu')," +
|
||||
"(849,'U.S. Miscellaneous Pacific Islands'),(800,'Uganda'),(804,'Ukraine'),(784,'United Arab Emirates')," +
|
||||
"(826,'United Kingdom'),(834,'United Republic of Tanzania'),(581,'United States Minor Outlying Islands')," +
|
||||
"(840,'United States of America'),(858,'Uruguay'),(810,'USSR'),(860,'Uzbekistan'),(548,'Vanuatu')," +
|
||||
"(704,'Viet-Nam'),(850,'Virgin Islands, U.S.'),(872,'Wake Island'),(876,'Wallis and Futuna')," +
|
||||
"(732,'Western Sahara'),(887,'Yemen'),(886,'Yemen Arab Republic'),(894,'Zambia'),(716,'Zimbabwe');";
|
||||
|
||||
public static readonly string CompaniesForeignKeys =
|
||||
"ALTER TABLE `companies` ADD FOREIGN KEY `fk_companies_sold_to` (sold_to) REFERENCES `companies` (`id`);\n" +
|
||||
"ALTER TABLE `companies` ADD FOREIGN KEY `fk_companies_country` (country) REFERENCES `iso3166_1_numeric` (`id`);";
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,7 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||
<Version>3.0.99.114</Version>
|
||||
<Version>3.0.99.118</Version>
|
||||
<Company>Canary Islands Computer Museum</Company>
|
||||
<Copyright>Copyright © 2003-2018 Natalia Portillo</Copyright>
|
||||
<Product>Canary Islands Computer Museum Website</Product>
|
||||
|
||||
Reference in New Issue
Block a user