mirror of
https://github.com/aljazceru/btcpayserver.git
synced 2025-12-17 14:04:26 +01:00
Remove migrations prior to 1.0.3.162 (#5939)
* Consolidate EF migrations up to 03/2020 into a single SQL script * Remove old migrations code
This commit is contained in:
@@ -14,4 +14,7 @@
|
|||||||
<ProjectReference Include="..\BTCPayServer.Abstractions\BTCPayServer.Abstractions.csproj" />
|
<ProjectReference Include="..\BTCPayServer.Abstractions\BTCPayServer.Abstractions.csproj" />
|
||||||
<ProjectReference Include="..\BTCPayServer.Client\BTCPayServer.Client.csproj" />
|
<ProjectReference Include="..\BTCPayServer.Client\BTCPayServer.Client.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<EmbeddedResource Include="DBScripts\*.sql" />
|
||||||
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
301
BTCPayServer.Data/DBScripts/000.Init.sql
Normal file
301
BTCPayServer.Data/DBScripts/000.Init.sql
Normal file
@@ -0,0 +1,301 @@
|
|||||||
|
CREATE TABLE "AddressInvoices" (
|
||||||
|
"Address" text NOT NULL,
|
||||||
|
"InvoiceDataId" text,
|
||||||
|
"CreatedTime" timestamp with time zone
|
||||||
|
);
|
||||||
|
CREATE TABLE "ApiKeys" (
|
||||||
|
"Id" character varying(50) NOT NULL,
|
||||||
|
"StoreId" character varying(50),
|
||||||
|
"Permissions" text,
|
||||||
|
"Type" integer DEFAULT 0 NOT NULL,
|
||||||
|
"UserId" character varying(50),
|
||||||
|
"Label" text
|
||||||
|
);
|
||||||
|
CREATE TABLE "Apps" (
|
||||||
|
"Id" text NOT NULL,
|
||||||
|
"AppType" text,
|
||||||
|
"Created" timestamp with time zone NOT NULL,
|
||||||
|
"Name" text,
|
||||||
|
"Settings" text,
|
||||||
|
"StoreDataId" text,
|
||||||
|
"TagAllInvoices" boolean DEFAULT false NOT NULL
|
||||||
|
);
|
||||||
|
CREATE TABLE "AspNetRoleClaims" (
|
||||||
|
"Id" integer NOT NULL,
|
||||||
|
"ClaimType" text,
|
||||||
|
"ClaimValue" text,
|
||||||
|
"RoleId" text NOT NULL
|
||||||
|
);
|
||||||
|
CREATE TABLE "AspNetRoles" (
|
||||||
|
"Id" text NOT NULL,
|
||||||
|
"ConcurrencyStamp" text,
|
||||||
|
"Name" character varying(256),
|
||||||
|
"NormalizedName" character varying(256)
|
||||||
|
);
|
||||||
|
CREATE TABLE "AspNetUserClaims" (
|
||||||
|
"Id" integer NOT NULL,
|
||||||
|
"ClaimType" text,
|
||||||
|
"ClaimValue" text,
|
||||||
|
"UserId" text NOT NULL
|
||||||
|
);
|
||||||
|
CREATE TABLE "AspNetUserLogins" (
|
||||||
|
"LoginProvider" character varying(255) NOT NULL,
|
||||||
|
"ProviderKey" character varying(255) NOT NULL,
|
||||||
|
"ProviderDisplayName" text,
|
||||||
|
"UserId" text NOT NULL
|
||||||
|
);
|
||||||
|
CREATE TABLE "AspNetUserRoles" (
|
||||||
|
"UserId" text NOT NULL,
|
||||||
|
"RoleId" text NOT NULL
|
||||||
|
);
|
||||||
|
CREATE TABLE "AspNetUserTokens" (
|
||||||
|
"UserId" text NOT NULL,
|
||||||
|
"LoginProvider" character varying(64) NOT NULL,
|
||||||
|
"Name" character varying(64) NOT NULL,
|
||||||
|
"Value" text
|
||||||
|
);
|
||||||
|
CREATE TABLE "AspNetUsers" (
|
||||||
|
"Id" text NOT NULL,
|
||||||
|
"AccessFailedCount" integer NOT NULL,
|
||||||
|
"ConcurrencyStamp" text,
|
||||||
|
"Email" character varying(256),
|
||||||
|
"EmailConfirmed" boolean NOT NULL,
|
||||||
|
"LockoutEnabled" boolean NOT NULL,
|
||||||
|
"LockoutEnd" timestamp with time zone,
|
||||||
|
"NormalizedEmail" character varying(256),
|
||||||
|
"NormalizedUserName" character varying(256),
|
||||||
|
"PasswordHash" text,
|
||||||
|
"PhoneNumber" text,
|
||||||
|
"PhoneNumberConfirmed" boolean NOT NULL,
|
||||||
|
"SecurityStamp" text,
|
||||||
|
"TwoFactorEnabled" boolean NOT NULL,
|
||||||
|
"UserName" character varying(256),
|
||||||
|
"RequiresEmailConfirmation" boolean DEFAULT false NOT NULL
|
||||||
|
);
|
||||||
|
CREATE TABLE "Files" (
|
||||||
|
"Id" text NOT NULL,
|
||||||
|
"FileName" text,
|
||||||
|
"StorageFileName" text,
|
||||||
|
"Timestamp" timestamp with time zone NOT NULL,
|
||||||
|
"ApplicationUserId" text
|
||||||
|
);
|
||||||
|
CREATE TABLE "HistoricalAddressInvoices" (
|
||||||
|
"InvoiceDataId" text NOT NULL,
|
||||||
|
"Address" text NOT NULL,
|
||||||
|
"Assigned" timestamp with time zone NOT NULL,
|
||||||
|
"UnAssigned" timestamp with time zone,
|
||||||
|
"CryptoCode" text
|
||||||
|
);
|
||||||
|
CREATE TABLE "InvoiceEvents" (
|
||||||
|
"InvoiceDataId" text NOT NULL,
|
||||||
|
"UniqueId" text NOT NULL,
|
||||||
|
"Message" text,
|
||||||
|
"Timestamp" timestamp with time zone NOT NULL
|
||||||
|
);
|
||||||
|
CREATE TABLE "Invoices" (
|
||||||
|
"Id" text NOT NULL,
|
||||||
|
"Blob" bytea,
|
||||||
|
"Created" timestamp with time zone NOT NULL,
|
||||||
|
"CustomerEmail" text,
|
||||||
|
"ExceptionStatus" text,
|
||||||
|
"ItemCode" text,
|
||||||
|
"OrderId" text,
|
||||||
|
"Status" text,
|
||||||
|
"StoreDataId" text
|
||||||
|
);
|
||||||
|
CREATE TABLE "PairedSINData" (
|
||||||
|
"Id" text NOT NULL,
|
||||||
|
"Label" text,
|
||||||
|
"PairingTime" timestamp with time zone NOT NULL,
|
||||||
|
"SIN" text,
|
||||||
|
"StoreDataId" text
|
||||||
|
);
|
||||||
|
CREATE TABLE "PairingCodes" (
|
||||||
|
"Id" text NOT NULL,
|
||||||
|
"DateCreated" timestamp with time zone NOT NULL,
|
||||||
|
"Expiration" timestamp with time zone NOT NULL,
|
||||||
|
"Facade" text,
|
||||||
|
"Label" text,
|
||||||
|
"SIN" text,
|
||||||
|
"StoreDataId" text,
|
||||||
|
"TokenValue" text
|
||||||
|
);
|
||||||
|
CREATE TABLE "PaymentRequests" (
|
||||||
|
"Id" text NOT NULL,
|
||||||
|
"StoreDataId" text,
|
||||||
|
"Status" integer NOT NULL,
|
||||||
|
"Blob" bytea,
|
||||||
|
"Created" timestamp with time zone DEFAULT '1970-01-01 00:00:00+00'::timestamp with time zone NOT NULL
|
||||||
|
);
|
||||||
|
CREATE TABLE "Payments" (
|
||||||
|
"Id" text NOT NULL,
|
||||||
|
"Blob" bytea,
|
||||||
|
"InvoiceDataId" text,
|
||||||
|
"Accounted" boolean DEFAULT false NOT NULL
|
||||||
|
);
|
||||||
|
CREATE TABLE "PendingInvoices" (
|
||||||
|
"Id" text NOT NULL
|
||||||
|
);
|
||||||
|
CREATE TABLE "RefundAddresses" (
|
||||||
|
"Id" text NOT NULL,
|
||||||
|
"Blob" bytea,
|
||||||
|
"InvoiceDataId" text
|
||||||
|
);
|
||||||
|
CREATE TABLE "Settings" (
|
||||||
|
"Id" text NOT NULL,
|
||||||
|
"Value" text
|
||||||
|
);
|
||||||
|
CREATE TABLE "Stores" (
|
||||||
|
"Id" text NOT NULL,
|
||||||
|
"DerivationStrategy" text,
|
||||||
|
"SpeedPolicy" integer NOT NULL,
|
||||||
|
"StoreCertificate" bytea,
|
||||||
|
"StoreName" text,
|
||||||
|
"StoreWebsite" text,
|
||||||
|
"StoreBlob" bytea,
|
||||||
|
"DerivationStrategies" text,
|
||||||
|
"DefaultCrypto" text
|
||||||
|
);
|
||||||
|
CREATE TABLE "U2FDevices" (
|
||||||
|
"Id" text NOT NULL,
|
||||||
|
"Name" text,
|
||||||
|
"KeyHandle" bytea NOT NULL,
|
||||||
|
"PublicKey" bytea NOT NULL,
|
||||||
|
"AttestationCert" bytea NOT NULL,
|
||||||
|
"Counter" integer NOT NULL,
|
||||||
|
"ApplicationUserId" text
|
||||||
|
);
|
||||||
|
CREATE TABLE "UserStore" (
|
||||||
|
"ApplicationUserId" text NOT NULL,
|
||||||
|
"StoreDataId" text NOT NULL,
|
||||||
|
"Role" text
|
||||||
|
);
|
||||||
|
CREATE TABLE "WalletTransactions" (
|
||||||
|
"WalletDataId" text NOT NULL,
|
||||||
|
"TransactionId" text NOT NULL,
|
||||||
|
"Labels" text,
|
||||||
|
"Blob" bytea
|
||||||
|
);
|
||||||
|
CREATE TABLE "Wallets" (
|
||||||
|
"Id" text NOT NULL,
|
||||||
|
"Blob" bytea
|
||||||
|
);
|
||||||
|
ALTER TABLE ONLY "AddressInvoices"
|
||||||
|
ADD CONSTRAINT "PK_AddressInvoices" PRIMARY KEY ("Address");
|
||||||
|
ALTER TABLE ONLY "ApiKeys"
|
||||||
|
ADD CONSTRAINT "PK_ApiKeys" PRIMARY KEY ("Id");
|
||||||
|
ALTER TABLE ONLY "Apps"
|
||||||
|
ADD CONSTRAINT "PK_Apps" PRIMARY KEY ("Id");
|
||||||
|
ALTER TABLE ONLY "AspNetRoleClaims"
|
||||||
|
ADD CONSTRAINT "PK_AspNetRoleClaims" PRIMARY KEY ("Id");
|
||||||
|
ALTER TABLE ONLY "AspNetRoles"
|
||||||
|
ADD CONSTRAINT "PK_AspNetRoles" PRIMARY KEY ("Id");
|
||||||
|
ALTER TABLE ONLY "AspNetUserClaims"
|
||||||
|
ADD CONSTRAINT "PK_AspNetUserClaims" PRIMARY KEY ("Id");
|
||||||
|
ALTER TABLE ONLY "AspNetUserLogins"
|
||||||
|
ADD CONSTRAINT "PK_AspNetUserLogins" PRIMARY KEY ("LoginProvider", "ProviderKey");
|
||||||
|
ALTER TABLE ONLY "AspNetUserRoles"
|
||||||
|
ADD CONSTRAINT "PK_AspNetUserRoles" PRIMARY KEY ("UserId", "RoleId");
|
||||||
|
ALTER TABLE ONLY "AspNetUserTokens"
|
||||||
|
ADD CONSTRAINT "PK_AspNetUserTokens" PRIMARY KEY ("UserId", "LoginProvider", "Name");
|
||||||
|
ALTER TABLE ONLY "AspNetUsers"
|
||||||
|
ADD CONSTRAINT "PK_AspNetUsers" PRIMARY KEY ("Id");
|
||||||
|
ALTER TABLE ONLY "Files"
|
||||||
|
ADD CONSTRAINT "PK_Files" PRIMARY KEY ("Id");
|
||||||
|
ALTER TABLE ONLY "HistoricalAddressInvoices"
|
||||||
|
ADD CONSTRAINT "PK_HistoricalAddressInvoices" PRIMARY KEY ("InvoiceDataId", "Address");
|
||||||
|
ALTER TABLE ONLY "InvoiceEvents"
|
||||||
|
ADD CONSTRAINT "PK_InvoiceEvents" PRIMARY KEY ("InvoiceDataId", "UniqueId");
|
||||||
|
ALTER TABLE ONLY "Invoices"
|
||||||
|
ADD CONSTRAINT "PK_Invoices" PRIMARY KEY ("Id");
|
||||||
|
ALTER TABLE ONLY "PairedSINData"
|
||||||
|
ADD CONSTRAINT "PK_PairedSINData" PRIMARY KEY ("Id");
|
||||||
|
ALTER TABLE ONLY "PairingCodes"
|
||||||
|
ADD CONSTRAINT "PK_PairingCodes" PRIMARY KEY ("Id");
|
||||||
|
ALTER TABLE ONLY "PaymentRequests"
|
||||||
|
ADD CONSTRAINT "PK_PaymentRequests" PRIMARY KEY ("Id");
|
||||||
|
ALTER TABLE ONLY "Payments"
|
||||||
|
ADD CONSTRAINT "PK_Payments" PRIMARY KEY ("Id");
|
||||||
|
ALTER TABLE ONLY "PendingInvoices"
|
||||||
|
ADD CONSTRAINT "PK_PendingInvoices" PRIMARY KEY ("Id");
|
||||||
|
ALTER TABLE ONLY "RefundAddresses"
|
||||||
|
ADD CONSTRAINT "PK_RefundAddresses" PRIMARY KEY ("Id");
|
||||||
|
ALTER TABLE ONLY "Settings"
|
||||||
|
ADD CONSTRAINT "PK_Settings" PRIMARY KEY ("Id");
|
||||||
|
ALTER TABLE ONLY "Stores"
|
||||||
|
ADD CONSTRAINT "PK_Stores" PRIMARY KEY ("Id");
|
||||||
|
ALTER TABLE ONLY "U2FDevices"
|
||||||
|
ADD CONSTRAINT "PK_U2FDevices" PRIMARY KEY ("Id");
|
||||||
|
ALTER TABLE ONLY "UserStore"
|
||||||
|
ADD CONSTRAINT "PK_UserStore" PRIMARY KEY ("ApplicationUserId", "StoreDataId");
|
||||||
|
ALTER TABLE ONLY "WalletTransactions"
|
||||||
|
ADD CONSTRAINT "PK_WalletTransactions" PRIMARY KEY ("WalletDataId", "TransactionId");
|
||||||
|
ALTER TABLE ONLY "Wallets"
|
||||||
|
ADD CONSTRAINT "PK_Wallets" PRIMARY KEY ("Id");
|
||||||
|
CREATE INDEX "EmailIndex" ON "AspNetUsers" USING btree ("NormalizedEmail");
|
||||||
|
CREATE INDEX "IX_AddressInvoices_InvoiceDataId" ON "AddressInvoices" USING btree ("InvoiceDataId");
|
||||||
|
CREATE INDEX "IX_ApiKeys_StoreId" ON "ApiKeys" USING btree ("StoreId");
|
||||||
|
CREATE INDEX "IX_ApiKeys_UserId" ON "ApiKeys" USING btree ("UserId");
|
||||||
|
CREATE INDEX "IX_Apps_StoreDataId" ON "Apps" USING btree ("StoreDataId");
|
||||||
|
CREATE INDEX "IX_AspNetRoleClaims_RoleId" ON "AspNetRoleClaims" USING btree ("RoleId");
|
||||||
|
CREATE INDEX "IX_AspNetUserClaims_UserId" ON "AspNetUserClaims" USING btree ("UserId");
|
||||||
|
CREATE INDEX "IX_AspNetUserLogins_UserId" ON "AspNetUserLogins" USING btree ("UserId");
|
||||||
|
CREATE INDEX "IX_AspNetUserRoles_RoleId" ON "AspNetUserRoles" USING btree ("RoleId");
|
||||||
|
CREATE INDEX "IX_Files_ApplicationUserId" ON "Files" USING btree ("ApplicationUserId");
|
||||||
|
CREATE INDEX "IX_Invoices_StoreDataId" ON "Invoices" USING btree ("StoreDataId");
|
||||||
|
CREATE INDEX "IX_PairedSINData_SIN" ON "PairedSINData" USING btree ("SIN");
|
||||||
|
CREATE INDEX "IX_PairedSINData_StoreDataId" ON "PairedSINData" USING btree ("StoreDataId");
|
||||||
|
CREATE INDEX "IX_PaymentRequests_Status" ON "PaymentRequests" USING btree ("Status");
|
||||||
|
CREATE INDEX "IX_PaymentRequests_StoreDataId" ON "PaymentRequests" USING btree ("StoreDataId");
|
||||||
|
CREATE INDEX "IX_Payments_InvoiceDataId" ON "Payments" USING btree ("InvoiceDataId");
|
||||||
|
CREATE INDEX "IX_RefundAddresses_InvoiceDataId" ON "RefundAddresses" USING btree ("InvoiceDataId");
|
||||||
|
CREATE INDEX "IX_U2FDevices_ApplicationUserId" ON "U2FDevices" USING btree ("ApplicationUserId");
|
||||||
|
CREATE INDEX "IX_UserStore_StoreDataId" ON "UserStore" USING btree ("StoreDataId");
|
||||||
|
CREATE UNIQUE INDEX "RoleNameIndex" ON "AspNetRoles" USING btree ("NormalizedName");
|
||||||
|
CREATE UNIQUE INDEX "UserNameIndex" ON "AspNetUsers" USING btree ("NormalizedUserName");
|
||||||
|
ALTER TABLE ONLY "AddressInvoices"
|
||||||
|
ADD CONSTRAINT "FK_AddressInvoices_Invoices_InvoiceDataId" FOREIGN KEY ("InvoiceDataId") REFERENCES "Invoices"("Id") ON DELETE CASCADE;
|
||||||
|
ALTER TABLE ONLY "ApiKeys"
|
||||||
|
ADD CONSTRAINT "FK_ApiKeys_AspNetUsers_UserId" FOREIGN KEY ("UserId") REFERENCES "AspNetUsers"("Id") ON DELETE CASCADE;
|
||||||
|
ALTER TABLE ONLY "ApiKeys"
|
||||||
|
ADD CONSTRAINT "FK_ApiKeys_Stores_StoreId" FOREIGN KEY ("StoreId") REFERENCES "Stores"("Id") ON DELETE CASCADE;
|
||||||
|
ALTER TABLE ONLY "Apps"
|
||||||
|
ADD CONSTRAINT "FK_Apps_Stores_StoreDataId" FOREIGN KEY ("StoreDataId") REFERENCES "Stores"("Id") ON DELETE CASCADE;
|
||||||
|
ALTER TABLE ONLY "AspNetRoleClaims"
|
||||||
|
ADD CONSTRAINT "FK_AspNetRoleClaims_AspNetRoles_RoleId" FOREIGN KEY ("RoleId") REFERENCES "AspNetRoles"("Id") ON DELETE CASCADE;
|
||||||
|
ALTER TABLE ONLY "AspNetUserClaims"
|
||||||
|
ADD CONSTRAINT "FK_AspNetUserClaims_AspNetUsers_UserId" FOREIGN KEY ("UserId") REFERENCES "AspNetUsers"("Id") ON DELETE CASCADE;
|
||||||
|
ALTER TABLE ONLY "AspNetUserLogins"
|
||||||
|
ADD CONSTRAINT "FK_AspNetUserLogins_AspNetUsers_UserId" FOREIGN KEY ("UserId") REFERENCES "AspNetUsers"("Id") ON DELETE CASCADE;
|
||||||
|
ALTER TABLE ONLY "AspNetUserRoles"
|
||||||
|
ADD CONSTRAINT "FK_AspNetUserRoles_AspNetRoles_RoleId" FOREIGN KEY ("RoleId") REFERENCES "AspNetRoles"("Id") ON DELETE CASCADE;
|
||||||
|
ALTER TABLE ONLY "AspNetUserRoles"
|
||||||
|
ADD CONSTRAINT "FK_AspNetUserRoles_AspNetUsers_UserId" FOREIGN KEY ("UserId") REFERENCES "AspNetUsers"("Id") ON DELETE CASCADE;
|
||||||
|
ALTER TABLE ONLY "AspNetUserTokens"
|
||||||
|
ADD CONSTRAINT "FK_AspNetUserTokens_AspNetUsers_UserId" FOREIGN KEY ("UserId") REFERENCES "AspNetUsers"("Id") ON DELETE CASCADE;
|
||||||
|
ALTER TABLE ONLY "Files"
|
||||||
|
ADD CONSTRAINT "FK_Files_AspNetUsers_ApplicationUserId" FOREIGN KEY ("ApplicationUserId") REFERENCES "AspNetUsers"("Id") ON DELETE RESTRICT;
|
||||||
|
ALTER TABLE ONLY "HistoricalAddressInvoices"
|
||||||
|
ADD CONSTRAINT "FK_HistoricalAddressInvoices_Invoices_InvoiceDataId" FOREIGN KEY ("InvoiceDataId") REFERENCES "Invoices"("Id") ON DELETE CASCADE;
|
||||||
|
ALTER TABLE ONLY "InvoiceEvents"
|
||||||
|
ADD CONSTRAINT "FK_InvoiceEvents_Invoices_InvoiceDataId" FOREIGN KEY ("InvoiceDataId") REFERENCES "Invoices"("Id") ON DELETE CASCADE;
|
||||||
|
ALTER TABLE ONLY "Invoices"
|
||||||
|
ADD CONSTRAINT "FK_Invoices_Stores_StoreDataId" FOREIGN KEY ("StoreDataId") REFERENCES "Stores"("Id") ON DELETE CASCADE;
|
||||||
|
ALTER TABLE ONLY "PairedSINData"
|
||||||
|
ADD CONSTRAINT "FK_PairedSINData_Stores_StoreDataId" FOREIGN KEY ("StoreDataId") REFERENCES "Stores"("Id") ON DELETE CASCADE;
|
||||||
|
ALTER TABLE ONLY "PaymentRequests"
|
||||||
|
ADD CONSTRAINT "FK_PaymentRequests_Stores_StoreDataId" FOREIGN KEY ("StoreDataId") REFERENCES "Stores"("Id") ON DELETE CASCADE;
|
||||||
|
ALTER TABLE ONLY "Payments"
|
||||||
|
ADD CONSTRAINT "FK_Payments_Invoices_InvoiceDataId" FOREIGN KEY ("InvoiceDataId") REFERENCES "Invoices"("Id") ON DELETE CASCADE;
|
||||||
|
ALTER TABLE ONLY "PendingInvoices"
|
||||||
|
ADD CONSTRAINT "FK_PendingInvoices_Invoices_Id" FOREIGN KEY ("Id") REFERENCES "Invoices"("Id") ON DELETE CASCADE;
|
||||||
|
ALTER TABLE ONLY "RefundAddresses"
|
||||||
|
ADD CONSTRAINT "FK_RefundAddresses_Invoices_InvoiceDataId" FOREIGN KEY ("InvoiceDataId") REFERENCES "Invoices"("Id") ON DELETE CASCADE;
|
||||||
|
ALTER TABLE ONLY "U2FDevices"
|
||||||
|
ADD CONSTRAINT "FK_U2FDevices_AspNetUsers_ApplicationUserId" FOREIGN KEY ("ApplicationUserId") REFERENCES "AspNetUsers"("Id") ON DELETE RESTRICT;
|
||||||
|
ALTER TABLE ONLY "UserStore"
|
||||||
|
ADD CONSTRAINT "FK_UserStore_AspNetUsers_ApplicationUserId" FOREIGN KEY ("ApplicationUserId") REFERENCES "AspNetUsers"("Id") ON DELETE CASCADE;
|
||||||
|
ALTER TABLE ONLY "UserStore"
|
||||||
|
ADD CONSTRAINT "FK_UserStore_Stores_StoreDataId" FOREIGN KEY ("StoreDataId") REFERENCES "Stores"("Id") ON DELETE CASCADE;
|
||||||
|
ALTER TABLE ONLY "WalletTransactions"
|
||||||
|
ADD CONSTRAINT "FK_WalletTransactions_Wallets_WalletDataId" FOREIGN KEY ("WalletDataId") REFERENCES "Wallets"("Id") ON DELETE CASCADE;
|
||||||
37
BTCPayServer.Data/DBScriptsMigration.cs
Normal file
37
BTCPayServer.Data/DBScriptsMigration.cs
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
|
|
||||||
|
namespace BTCPayServer.Data
|
||||||
|
{
|
||||||
|
public abstract class DBScriptsMigration : Migration
|
||||||
|
{
|
||||||
|
protected override void Up(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
foreach (var script in GetType().GetCustomAttributes<DBScriptAttribute>().OrderBy(n => n.ScriptName))
|
||||||
|
{
|
||||||
|
var name = Assembly.GetExecutingAssembly().GetManifestResourceNames()
|
||||||
|
.First(s => s.EndsWith("." + script.ScriptName, StringComparison.Ordinal));
|
||||||
|
var stream = Assembly.GetExecutingAssembly()
|
||||||
|
.GetManifestResourceStream(name);
|
||||||
|
using var reader = new StreamReader(stream, Encoding.UTF8);
|
||||||
|
migrationBuilder.Sql(reader.ReadToEnd());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]
|
||||||
|
public class DBScriptAttribute : Attribute
|
||||||
|
{
|
||||||
|
public DBScriptAttribute(string scriptName)
|
||||||
|
{
|
||||||
|
ScriptName = scriptName;
|
||||||
|
}
|
||||||
|
public string ScriptName { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,360 +0,0 @@
|
|||||||
using System;
|
|
||||||
using BTCPayServer.Data;
|
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
|
|
||||||
namespace BTCPayServer.Migrations
|
|
||||||
{
|
|
||||||
[DbContext(typeof(ApplicationDbContext))]
|
|
||||||
[Migration("20170913143004_Init")]
|
|
||||||
public partial class Init : Migration
|
|
||||||
{
|
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "AspNetRoles",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
Id = table.Column<string>(nullable: false, maxLength: null),
|
|
||||||
ConcurrencyStamp = table.Column<string>(nullable: true),
|
|
||||||
Name = table.Column<string>(maxLength: 256, nullable: true),
|
|
||||||
NormalizedName = table.Column<string>(maxLength: 256, nullable: true)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_AspNetRoles", x => x.Id);
|
|
||||||
});
|
|
||||||
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "AspNetUsers",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
Id = table.Column<string>(nullable: false, maxLength: null),
|
|
||||||
AccessFailedCount = table.Column<int>(nullable: false),
|
|
||||||
ConcurrencyStamp = table.Column<string>(nullable: true),
|
|
||||||
Email = table.Column<string>(maxLength: 256, nullable: true),
|
|
||||||
EmailConfirmed = table.Column<bool>(nullable: false),
|
|
||||||
LockoutEnabled = table.Column<bool>(nullable: false),
|
|
||||||
LockoutEnd = table.Column<DateTimeOffset>(nullable: true),
|
|
||||||
NormalizedEmail = table.Column<string>(maxLength: 256, nullable: true),
|
|
||||||
NormalizedUserName = table.Column<string>(maxLength: 256, nullable: true),
|
|
||||||
PasswordHash = table.Column<string>(nullable: true),
|
|
||||||
PhoneNumber = table.Column<string>(nullable: true),
|
|
||||||
PhoneNumberConfirmed = table.Column<bool>(nullable: false),
|
|
||||||
SecurityStamp = table.Column<string>(nullable: true),
|
|
||||||
TwoFactorEnabled = table.Column<bool>(nullable: false),
|
|
||||||
UserName = table.Column<string>(maxLength: 256, nullable: true)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_AspNetUsers", x => x.Id);
|
|
||||||
});
|
|
||||||
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "Stores",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
Id = table.Column<string>(nullable: false, maxLength: null),
|
|
||||||
DerivationStrategy = table.Column<string>(nullable: true),
|
|
||||||
SpeedPolicy = table.Column<int>(nullable: false),
|
|
||||||
StoreCertificate = table.Column<byte[]>(nullable: true),
|
|
||||||
StoreName = table.Column<string>(nullable: true),
|
|
||||||
StoreWebsite = table.Column<string>(nullable: true)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_Stores", x => x.Id);
|
|
||||||
});
|
|
||||||
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "AspNetRoleClaims",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
Id = table.Column<int>(nullable: false)
|
|
||||||
.Annotation("Sqlite:Autoincrement", true),
|
|
||||||
ClaimType = table.Column<string>(nullable: true),
|
|
||||||
ClaimValue = table.Column<string>(nullable: true),
|
|
||||||
RoleId = table.Column<string>(nullable: false, maxLength: null)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_AspNetRoleClaims", x => x.Id);
|
|
||||||
table.ForeignKey(
|
|
||||||
name: "FK_AspNetRoleClaims_AspNetRoles_RoleId",
|
|
||||||
column: x => x.RoleId,
|
|
||||||
principalTable: "AspNetRoles",
|
|
||||||
principalColumn: "Id",
|
|
||||||
onDelete: ReferentialAction.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "AspNetUserClaims",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
Id = table.Column<int>(nullable: false)
|
|
||||||
.Annotation("Sqlite:Autoincrement", true),
|
|
||||||
ClaimType = table.Column<string>(nullable: true),
|
|
||||||
ClaimValue = table.Column<string>(nullable: true),
|
|
||||||
UserId = table.Column<string>(nullable: false, maxLength: null)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_AspNetUserClaims", x => x.Id);
|
|
||||||
table.ForeignKey(
|
|
||||||
name: "FK_AspNetUserClaims_AspNetUsers_UserId",
|
|
||||||
column: x => x.UserId,
|
|
||||||
principalTable: "AspNetUsers",
|
|
||||||
principalColumn: "Id",
|
|
||||||
onDelete: ReferentialAction.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "AspNetUserLogins",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
LoginProvider = table.Column<string>(nullable: false, maxLength: 255),
|
|
||||||
ProviderKey = table.Column<string>(nullable: false, maxLength: 255),
|
|
||||||
ProviderDisplayName = table.Column<string>(nullable: true),
|
|
||||||
UserId = table.Column<string>(nullable: false, maxLength: null)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_AspNetUserLogins", x => new { x.LoginProvider, x.ProviderKey });
|
|
||||||
table.ForeignKey(
|
|
||||||
name: "FK_AspNetUserLogins_AspNetUsers_UserId",
|
|
||||||
column: x => x.UserId,
|
|
||||||
principalTable: "AspNetUsers",
|
|
||||||
principalColumn: "Id",
|
|
||||||
onDelete: ReferentialAction.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "AspNetUserRoles",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
UserId = table.Column<string>(nullable: false, maxLength: null),
|
|
||||||
RoleId = table.Column<string>(nullable: false, maxLength: null)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_AspNetUserRoles", x => new { x.UserId, x.RoleId });
|
|
||||||
table.ForeignKey(
|
|
||||||
name: "FK_AspNetUserRoles_AspNetRoles_RoleId",
|
|
||||||
column: x => x.RoleId,
|
|
||||||
principalTable: "AspNetRoles",
|
|
||||||
principalColumn: "Id",
|
|
||||||
onDelete: ReferentialAction.Cascade);
|
|
||||||
table.ForeignKey(
|
|
||||||
name: "FK_AspNetUserRoles_AspNetUsers_UserId",
|
|
||||||
column: x => x.UserId,
|
|
||||||
principalTable: "AspNetUsers",
|
|
||||||
principalColumn: "Id",
|
|
||||||
onDelete: ReferentialAction.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "AspNetUserTokens",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
UserId = table.Column<string>(nullable: false, maxLength: null),
|
|
||||||
LoginProvider = table.Column<string>(nullable: false, maxLength: 64),
|
|
||||||
Name = table.Column<string>(nullable: false, maxLength: 64),
|
|
||||||
Value = table.Column<string>(nullable: true)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_AspNetUserTokens", x => new { x.UserId, x.LoginProvider, x.Name });
|
|
||||||
table.ForeignKey(
|
|
||||||
name: "FK_AspNetUserTokens_AspNetUsers_UserId",
|
|
||||||
column: x => x.UserId,
|
|
||||||
principalTable: "AspNetUsers",
|
|
||||||
principalColumn: "Id",
|
|
||||||
onDelete: ReferentialAction.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "Invoices",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
Id = table.Column<string>(nullable: false, maxLength: null),
|
|
||||||
Blob = table.Column<byte[]>(nullable: true),
|
|
||||||
Created = table.Column<DateTimeOffset>(nullable: false),
|
|
||||||
CustomerEmail = table.Column<string>(nullable: true),
|
|
||||||
ExceptionStatus = table.Column<string>(nullable: true),
|
|
||||||
ItemCode = table.Column<string>(nullable: true),
|
|
||||||
OrderId = table.Column<string>(nullable: true),
|
|
||||||
Status = table.Column<string>(nullable: true),
|
|
||||||
StoreDataId = table.Column<string>(nullable: true, maxLength: null)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_Invoices", x => x.Id);
|
|
||||||
table.ForeignKey(
|
|
||||||
name: "FK_Invoices_Stores_StoreDataId",
|
|
||||||
column: x => x.StoreDataId,
|
|
||||||
principalTable: "Stores",
|
|
||||||
principalColumn: "Id",
|
|
||||||
onDelete: ReferentialAction.Restrict);
|
|
||||||
});
|
|
||||||
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "UserStore",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
ApplicationUserId = table.Column<string>(nullable: false, maxLength: null),
|
|
||||||
StoreDataId = table.Column<string>(nullable: false, maxLength: null),
|
|
||||||
Role = table.Column<string>(nullable: true)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_UserStore", x => new { x.ApplicationUserId, x.StoreDataId });
|
|
||||||
table.ForeignKey(
|
|
||||||
name: "FK_UserStore_AspNetUsers_ApplicationUserId",
|
|
||||||
column: x => x.ApplicationUserId,
|
|
||||||
principalTable: "AspNetUsers",
|
|
||||||
principalColumn: "Id",
|
|
||||||
onDelete: ReferentialAction.Cascade);
|
|
||||||
table.ForeignKey(
|
|
||||||
name: "FK_UserStore_Stores_StoreDataId",
|
|
||||||
column: x => x.StoreDataId,
|
|
||||||
principalTable: "Stores",
|
|
||||||
principalColumn: "Id",
|
|
||||||
onDelete: ReferentialAction.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "Payments",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
Id = table.Column<string>(nullable: false, maxLength: null),
|
|
||||||
Blob = table.Column<byte[]>(nullable: true),
|
|
||||||
InvoiceDataId = table.Column<string>(nullable: true, maxLength: null)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_Payments", x => x.Id);
|
|
||||||
table.ForeignKey(
|
|
||||||
name: "FK_Payments_Invoices_InvoiceDataId",
|
|
||||||
column: x => x.InvoiceDataId,
|
|
||||||
principalTable: "Invoices",
|
|
||||||
principalColumn: "Id",
|
|
||||||
onDelete: ReferentialAction.Restrict);
|
|
||||||
});
|
|
||||||
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "RefundAddresses",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
Id = table.Column<string>(nullable: false, maxLength: null),
|
|
||||||
Blob = table.Column<byte[]>(nullable: true),
|
|
||||||
InvoiceDataId = table.Column<string>(nullable: true, maxLength: null)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_RefundAddresses", x => x.Id);
|
|
||||||
table.ForeignKey(
|
|
||||||
name: "FK_RefundAddresses_Invoices_InvoiceDataId",
|
|
||||||
column: x => x.InvoiceDataId,
|
|
||||||
principalTable: "Invoices",
|
|
||||||
principalColumn: "Id",
|
|
||||||
onDelete: ReferentialAction.Restrict);
|
|
||||||
});
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "IX_AspNetRoleClaims_RoleId",
|
|
||||||
table: "AspNetRoleClaims",
|
|
||||||
column: "RoleId");
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "RoleNameIndex",
|
|
||||||
table: "AspNetRoles",
|
|
||||||
column: "NormalizedName",
|
|
||||||
unique: true);
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "IX_AspNetUserClaims_UserId",
|
|
||||||
table: "AspNetUserClaims",
|
|
||||||
column: "UserId");
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "IX_AspNetUserLogins_UserId",
|
|
||||||
table: "AspNetUserLogins",
|
|
||||||
column: "UserId");
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "IX_AspNetUserRoles_RoleId",
|
|
||||||
table: "AspNetUserRoles",
|
|
||||||
column: "RoleId");
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "EmailIndex",
|
|
||||||
table: "AspNetUsers",
|
|
||||||
column: "NormalizedEmail");
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "UserNameIndex",
|
|
||||||
table: "AspNetUsers",
|
|
||||||
column: "NormalizedUserName",
|
|
||||||
unique: true);
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "IX_Invoices_StoreDataId",
|
|
||||||
table: "Invoices",
|
|
||||||
column: "StoreDataId");
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "IX_Payments_InvoiceDataId",
|
|
||||||
table: "Payments",
|
|
||||||
column: "InvoiceDataId");
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "IX_RefundAddresses_InvoiceDataId",
|
|
||||||
table: "RefundAddresses",
|
|
||||||
column: "InvoiceDataId");
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "IX_UserStore_StoreDataId",
|
|
||||||
table: "UserStore",
|
|
||||||
column: "StoreDataId");
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void Down(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "AspNetRoleClaims");
|
|
||||||
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "AspNetUserClaims");
|
|
||||||
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "AspNetUserLogins");
|
|
||||||
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "AspNetUserRoles");
|
|
||||||
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "AspNetUserTokens");
|
|
||||||
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "Payments");
|
|
||||||
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "RefundAddresses");
|
|
||||||
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "UserStore");
|
|
||||||
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "AspNetRoles");
|
|
||||||
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "Invoices");
|
|
||||||
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "AspNetUsers");
|
|
||||||
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "Stores");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
using BTCPayServer.Data;
|
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
|
|
||||||
namespace BTCPayServer.Migrations
|
|
||||||
{
|
|
||||||
[DbContext(typeof(ApplicationDbContext))]
|
|
||||||
[Migration("20170926073744_Settings")]
|
|
||||||
public partial class Settings : Migration
|
|
||||||
{
|
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "Settings",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
Id = table.Column<string>(nullable: false, maxLength: null),
|
|
||||||
Value = table.Column<string>(nullable: true)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_Settings", x => x.Id);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void Down(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "Settings");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
using BTCPayServer.Data;
|
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
|
|
||||||
namespace BTCPayServer.Migrations
|
|
||||||
{
|
|
||||||
[DbContext(typeof(ApplicationDbContext))]
|
|
||||||
[Migration("20170926084408_RequiresEmailConfirmation")]
|
|
||||||
public partial class RequiresEmailConfirmation : Migration
|
|
||||||
{
|
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.AddColumn<bool>(
|
|
||||||
name: "RequiresEmailConfirmation",
|
|
||||||
table: "AspNetUsers",
|
|
||||||
nullable: false,
|
|
||||||
defaultValue: false);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void Down(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.DropColumn(
|
|
||||||
name: "RequiresEmailConfirmation",
|
|
||||||
table: "AspNetUsers");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
using BTCPayServer.Data;
|
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
|
|
||||||
namespace BTCPayServer.Migrations
|
|
||||||
{
|
|
||||||
[DbContext(typeof(ApplicationDbContext))]
|
|
||||||
[Migration("20171006013443_AddressMapping")]
|
|
||||||
public partial class AddressMapping : Migration
|
|
||||||
{
|
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "AddressInvoices",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
Address = table.Column<string>(nullable: false, maxLength: null),
|
|
||||||
InvoiceDataId = table.Column<string>(nullable: true, maxLength: null)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_AddressInvoices", x => x.Address);
|
|
||||||
table.ForeignKey(
|
|
||||||
name: "FK_AddressInvoices_Invoices_InvoiceDataId",
|
|
||||||
column: x => x.InvoiceDataId,
|
|
||||||
principalTable: "Invoices",
|
|
||||||
principalColumn: "Id",
|
|
||||||
onDelete: ReferentialAction.Restrict);
|
|
||||||
});
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "IX_AddressInvoices_InvoiceDataId",
|
|
||||||
table: "AddressInvoices",
|
|
||||||
column: "InvoiceDataId");
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void Down(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "AddressInvoices");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,70 +0,0 @@
|
|||||||
using System;
|
|
||||||
using BTCPayServer.Data;
|
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
|
|
||||||
namespace BTCPayServer.Migrations
|
|
||||||
{
|
|
||||||
[DbContext(typeof(ApplicationDbContext))]
|
|
||||||
[Migration("20171010082424_Tokens")]
|
|
||||||
public partial class Tokens : Migration
|
|
||||||
{
|
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "PairedSINData",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
Id = table.Column<string>(nullable: false, maxLength: null),
|
|
||||||
Facade = table.Column<string>(nullable: true),
|
|
||||||
Label = table.Column<string>(nullable: true),
|
|
||||||
Name = table.Column<string>(nullable: true),
|
|
||||||
PairingTime = table.Column<DateTimeOffset>(nullable: false),
|
|
||||||
SIN = table.Column<string>(nullable: true, maxLength: null),
|
|
||||||
StoreDataId = table.Column<string>(nullable: true, maxLength: null)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_PairedSINData", x => x.Id);
|
|
||||||
});
|
|
||||||
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "PairingCodes",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
Id = table.Column<string>(nullable: false, maxLength: null),
|
|
||||||
DateCreated = table.Column<DateTime>(nullable: false),
|
|
||||||
Expiration = table.Column<DateTimeOffset>(nullable: false),
|
|
||||||
Facade = table.Column<string>(nullable: true),
|
|
||||||
Label = table.Column<string>(nullable: true),
|
|
||||||
Name = table.Column<string>(nullable: true),
|
|
||||||
SIN = table.Column<string>(nullable: true),
|
|
||||||
StoreDataId = table.Column<string>(nullable: true, maxLength: null),
|
|
||||||
TokenValue = table.Column<string>(nullable: true)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_PairingCodes", x => x.Id);
|
|
||||||
});
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "IX_PairedSINData_SIN",
|
|
||||||
table: "PairedSINData",
|
|
||||||
column: "SIN");
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "IX_PairedSINData_StoreDataId",
|
|
||||||
table: "PairedSINData",
|
|
||||||
column: "StoreDataId");
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void Down(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "PairedSINData");
|
|
||||||
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "PairingCodes");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,48 +0,0 @@
|
|||||||
using BTCPayServer.Data;
|
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
|
|
||||||
namespace BTCPayServer.Migrations
|
|
||||||
{
|
|
||||||
[DbContext(typeof(ApplicationDbContext))]
|
|
||||||
[Migration("20171012020112_PendingInvoices")]
|
|
||||||
public partial class PendingInvoices : Migration
|
|
||||||
{
|
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.DropColumn(
|
|
||||||
name: "Name",
|
|
||||||
table: "PairingCodes");
|
|
||||||
|
|
||||||
migrationBuilder.DropColumn(
|
|
||||||
name: "Name",
|
|
||||||
table: "PairedSINData");
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "PendingInvoices",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
Id = table.Column<string>(nullable: false, maxLength: null)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_PendingInvoices", x => x.Id);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void Down(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "PendingInvoices");
|
|
||||||
|
|
||||||
migrationBuilder.AddColumn<string>(
|
|
||||||
name: "Name",
|
|
||||||
table: "PairingCodes",
|
|
||||||
nullable: true);
|
|
||||||
|
|
||||||
migrationBuilder.AddColumn<string>(
|
|
||||||
name: "Name",
|
|
||||||
table: "PairedSINData",
|
|
||||||
nullable: true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
using BTCPayServer.Data;
|
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
|
|
||||||
namespace BTCPayServer.Migrations
|
|
||||||
{
|
|
||||||
[DbContext(typeof(ApplicationDbContext))]
|
|
||||||
[Migration("20171023101754_StoreBlob")]
|
|
||||||
public partial class StoreBlob : Migration
|
|
||||||
{
|
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.AddColumn<byte[]>(
|
|
||||||
name: "StoreBlob",
|
|
||||||
table: "Stores",
|
|
||||||
nullable: true);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void Down(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.DropColumn(
|
|
||||||
name: "StoreBlob",
|
|
||||||
table: "Stores");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,50 +0,0 @@
|
|||||||
using System;
|
|
||||||
using BTCPayServer.Data;
|
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
|
|
||||||
namespace BTCPayServer.Migrations
|
|
||||||
{
|
|
||||||
[DbContext(typeof(ApplicationDbContext))]
|
|
||||||
[Migration("20171024163354_RenewUsedAddresses")]
|
|
||||||
public partial class RenewUsedAddresses : Migration
|
|
||||||
{
|
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.AddColumn<DateTimeOffset>(
|
|
||||||
name: "CreatedTime",
|
|
||||||
table: "AddressInvoices",
|
|
||||||
nullable: true);
|
|
||||||
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "HistoricalAddressInvoices",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
InvoiceDataId = table.Column<string>(nullable: false, maxLength: null),
|
|
||||||
Address = table.Column<string>(nullable: false, maxLength: null),
|
|
||||||
Assigned = table.Column<DateTimeOffset>(nullable: false),
|
|
||||||
UnAssigned = table.Column<DateTimeOffset>(nullable: true)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_HistoricalAddressInvoices", x => new { x.InvoiceDataId, x.Address });
|
|
||||||
table.ForeignKey(
|
|
||||||
name: "FK_HistoricalAddressInvoices_Invoices_InvoiceDataId",
|
|
||||||
column: x => x.InvoiceDataId,
|
|
||||||
principalTable: "Invoices",
|
|
||||||
principalColumn: "Id",
|
|
||||||
onDelete: ReferentialAction.Cascade);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void Down(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "HistoricalAddressInvoices");
|
|
||||||
|
|
||||||
migrationBuilder.DropColumn(
|
|
||||||
name: "CreatedTime",
|
|
||||||
table: "AddressInvoices");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
using BTCPayServer.Data;
|
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
|
|
||||||
namespace BTCPayServer.Migrations
|
|
||||||
{
|
|
||||||
[DbContext(typeof(ApplicationDbContext))]
|
|
||||||
[Migration("20171105235734_PaymentAccounted")]
|
|
||||||
public partial class PaymentAccounted : Migration
|
|
||||||
{
|
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.AddColumn<bool>(
|
|
||||||
name: "Accounted",
|
|
||||||
table: "Payments",
|
|
||||||
nullable: false,
|
|
||||||
defaultValue: false);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void Down(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.DropColumn(
|
|
||||||
name: "Accounted",
|
|
||||||
table: "Payments");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
using BTCPayServer.Data;
|
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
|
|
||||||
namespace BTCPayServer.Migrations
|
|
||||||
{
|
|
||||||
[DbContext(typeof(ApplicationDbContext))]
|
|
||||||
[Migration("20171221054550_AltcoinSupport")]
|
|
||||||
public partial class AltcoinSupport : Migration
|
|
||||||
{
|
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.AddColumn<string>(
|
|
||||||
name: "CryptoCode",
|
|
||||||
table: "HistoricalAddressInvoices",
|
|
||||||
nullable: true);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void Down(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.DropColumn(
|
|
||||||
name: "CryptoCode",
|
|
||||||
table: "HistoricalAddressInvoices");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
using BTCPayServer.Data;
|
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
|
|
||||||
namespace BTCPayServer.Migrations
|
|
||||||
{
|
|
||||||
[DbContext(typeof(ApplicationDbContext))]
|
|
||||||
[Migration("20180106095215_DerivationStrategies")]
|
|
||||||
public partial class DerivationStrategies : Migration
|
|
||||||
{
|
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.AddColumn<string>(
|
|
||||||
name: "DerivationStrategies",
|
|
||||||
table: "Stores",
|
|
||||||
nullable: true);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void Down(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.DropColumn(
|
|
||||||
name: "DerivationStrategies",
|
|
||||||
table: "Stores");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
using BTCPayServer.Data;
|
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
|
|
||||||
namespace BTCPayServer.Migrations
|
|
||||||
{
|
|
||||||
[DbContext(typeof(ApplicationDbContext))]
|
|
||||||
[Migration("20180109021122_defaultcrypto")]
|
|
||||||
public partial class defaultcrypto : Migration
|
|
||||||
{
|
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.AddColumn<string>(
|
|
||||||
name: "DefaultCrypto",
|
|
||||||
table: "Stores",
|
|
||||||
nullable: true);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void Down(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.DropColumn(
|
|
||||||
name: "DefaultCrypto",
|
|
||||||
table: "Stores");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
using System;
|
|
||||||
using BTCPayServer.Data;
|
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
|
|
||||||
namespace BTCPayServer.Migrations
|
|
||||||
{
|
|
||||||
[DbContext(typeof(ApplicationDbContext))]
|
|
||||||
[Migration("20180114123253_events")]
|
|
||||||
public partial class events : Migration
|
|
||||||
{
|
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "InvoiceEvents",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
InvoiceDataId = table.Column<string>(nullable: false, maxLength: null),
|
|
||||||
UniqueId = table.Column<string>(nullable: false, maxLength: null),
|
|
||||||
Message = table.Column<string>(nullable: true),
|
|
||||||
Timestamp = table.Column<DateTimeOffset>(nullable: false)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_InvoiceEvents", x => new { x.InvoiceDataId, x.UniqueId });
|
|
||||||
table.ForeignKey(
|
|
||||||
name: "FK_InvoiceEvents_Invoices_InvoiceDataId",
|
|
||||||
column: x => x.InvoiceDataId,
|
|
||||||
principalTable: "Invoices",
|
|
||||||
principalColumn: "Id",
|
|
||||||
onDelete: ReferentialAction.Cascade);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void Down(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "InvoiceEvents");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,48 +0,0 @@
|
|||||||
using System;
|
|
||||||
using BTCPayServer.Data;
|
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
|
|
||||||
namespace BTCPayServer.Migrations
|
|
||||||
{
|
|
||||||
[DbContext(typeof(ApplicationDbContext))]
|
|
||||||
[Migration("20180402095640_appdata")]
|
|
||||||
public partial class appdata : Migration
|
|
||||||
{
|
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "Apps",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
Id = table.Column<string>(nullable: false, maxLength: null),
|
|
||||||
AppType = table.Column<string>(nullable: true),
|
|
||||||
Created = table.Column<DateTimeOffset>(nullable: false),
|
|
||||||
Name = table.Column<string>(nullable: true),
|
|
||||||
Settings = table.Column<string>(nullable: true),
|
|
||||||
StoreDataId = table.Column<string>(nullable: true, maxLength: null)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_Apps", x => x.Id);
|
|
||||||
table.ForeignKey(
|
|
||||||
name: "FK_Apps_Stores_StoreDataId",
|
|
||||||
column: x => x.StoreDataId,
|
|
||||||
principalTable: "Stores",
|
|
||||||
principalColumn: "Id",
|
|
||||||
onDelete: ReferentialAction.Restrict);
|
|
||||||
});
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "IX_Apps_StoreDataId",
|
|
||||||
table: "Apps",
|
|
||||||
column: "StoreDataId");
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void Down(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "Apps");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
using BTCPayServer.Data;
|
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
|
|
||||||
namespace BTCPayServer.Migrations
|
|
||||||
{
|
|
||||||
[DbContext(typeof(ApplicationDbContext))]
|
|
||||||
[Migration("20180429083930_legacyapikey")]
|
|
||||||
public partial class legacyapikey : Migration
|
|
||||||
{
|
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "ApiKeys",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
Id = table.Column<string>(maxLength: 50, nullable: false),
|
|
||||||
StoreId = table.Column<string>(maxLength: 50, nullable: true)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_ApiKeys", x => x.Id);
|
|
||||||
});
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "IX_ApiKeys_StoreId",
|
|
||||||
table: "ApiKeys",
|
|
||||||
column: "StoreId");
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void Down(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "ApiKeys");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,173 +0,0 @@
|
|||||||
using BTCPayServer.Data;
|
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
|
|
||||||
namespace BTCPayServer.Migrations
|
|
||||||
{
|
|
||||||
[DbContext(typeof(ApplicationDbContext))]
|
|
||||||
[Migration("20180719095626_CanDeleteStores")]
|
|
||||||
public partial class CanDeleteStores : Migration
|
|
||||||
{
|
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.DropForeignKey(
|
|
||||||
name: "FK_AddressInvoices_Invoices_InvoiceDataId",
|
|
||||||
table: "AddressInvoices");
|
|
||||||
|
|
||||||
migrationBuilder.DropForeignKey(
|
|
||||||
name: "FK_Apps_Stores_StoreDataId",
|
|
||||||
table: "Apps");
|
|
||||||
|
|
||||||
migrationBuilder.DropForeignKey(
|
|
||||||
name: "FK_Invoices_Stores_StoreDataId",
|
|
||||||
table: "Invoices");
|
|
||||||
|
|
||||||
migrationBuilder.DropForeignKey(
|
|
||||||
name: "FK_Payments_Invoices_InvoiceDataId",
|
|
||||||
table: "Payments");
|
|
||||||
|
|
||||||
migrationBuilder.DropForeignKey(
|
|
||||||
name: "FK_RefundAddresses_Invoices_InvoiceDataId",
|
|
||||||
table: "RefundAddresses");
|
|
||||||
|
|
||||||
migrationBuilder.AddForeignKey(
|
|
||||||
name: "FK_AddressInvoices_Invoices_InvoiceDataId",
|
|
||||||
table: "AddressInvoices",
|
|
||||||
column: "InvoiceDataId",
|
|
||||||
principalTable: "Invoices",
|
|
||||||
principalColumn: "Id",
|
|
||||||
onDelete: ReferentialAction.Cascade);
|
|
||||||
|
|
||||||
migrationBuilder.AddForeignKey(
|
|
||||||
name: "FK_ApiKeys_Stores_StoreId",
|
|
||||||
table: "ApiKeys",
|
|
||||||
column: "StoreId",
|
|
||||||
principalTable: "Stores",
|
|
||||||
principalColumn: "Id",
|
|
||||||
onDelete: ReferentialAction.Cascade);
|
|
||||||
|
|
||||||
migrationBuilder.AddForeignKey(
|
|
||||||
name: "FK_Apps_Stores_StoreDataId",
|
|
||||||
table: "Apps",
|
|
||||||
column: "StoreDataId",
|
|
||||||
principalTable: "Stores",
|
|
||||||
principalColumn: "Id",
|
|
||||||
onDelete: ReferentialAction.Cascade);
|
|
||||||
|
|
||||||
migrationBuilder.AddForeignKey(
|
|
||||||
name: "FK_Invoices_Stores_StoreDataId",
|
|
||||||
table: "Invoices",
|
|
||||||
column: "StoreDataId",
|
|
||||||
principalTable: "Stores",
|
|
||||||
principalColumn: "Id",
|
|
||||||
onDelete: ReferentialAction.Cascade);
|
|
||||||
|
|
||||||
migrationBuilder.AddForeignKey(
|
|
||||||
name: "FK_PairedSINData_Stores_StoreDataId",
|
|
||||||
table: "PairedSINData",
|
|
||||||
column: "StoreDataId",
|
|
||||||
principalTable: "Stores",
|
|
||||||
principalColumn: "Id",
|
|
||||||
onDelete: ReferentialAction.Cascade);
|
|
||||||
|
|
||||||
migrationBuilder.AddForeignKey(
|
|
||||||
name: "FK_Payments_Invoices_InvoiceDataId",
|
|
||||||
table: "Payments",
|
|
||||||
column: "InvoiceDataId",
|
|
||||||
principalTable: "Invoices",
|
|
||||||
principalColumn: "Id",
|
|
||||||
onDelete: ReferentialAction.Cascade);
|
|
||||||
|
|
||||||
migrationBuilder.AddForeignKey(
|
|
||||||
name: "FK_PendingInvoices_Invoices_Id",
|
|
||||||
table: "PendingInvoices",
|
|
||||||
column: "Id",
|
|
||||||
principalTable: "Invoices",
|
|
||||||
principalColumn: "Id",
|
|
||||||
onDelete: ReferentialAction.Cascade);
|
|
||||||
|
|
||||||
migrationBuilder.AddForeignKey(
|
|
||||||
name: "FK_RefundAddresses_Invoices_InvoiceDataId",
|
|
||||||
table: "RefundAddresses",
|
|
||||||
column: "InvoiceDataId",
|
|
||||||
principalTable: "Invoices",
|
|
||||||
principalColumn: "Id",
|
|
||||||
onDelete: ReferentialAction.Cascade);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void Down(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.DropForeignKey(
|
|
||||||
name: "FK_AddressInvoices_Invoices_InvoiceDataId",
|
|
||||||
table: "AddressInvoices");
|
|
||||||
|
|
||||||
migrationBuilder.DropForeignKey(
|
|
||||||
name: "FK_ApiKeys_Stores_StoreId",
|
|
||||||
table: "ApiKeys");
|
|
||||||
|
|
||||||
migrationBuilder.DropForeignKey(
|
|
||||||
name: "FK_Apps_Stores_StoreDataId",
|
|
||||||
table: "Apps");
|
|
||||||
|
|
||||||
migrationBuilder.DropForeignKey(
|
|
||||||
name: "FK_Invoices_Stores_StoreDataId",
|
|
||||||
table: "Invoices");
|
|
||||||
|
|
||||||
migrationBuilder.DropForeignKey(
|
|
||||||
name: "FK_PairedSINData_Stores_StoreDataId",
|
|
||||||
table: "PairedSINData");
|
|
||||||
|
|
||||||
migrationBuilder.DropForeignKey(
|
|
||||||
name: "FK_Payments_Invoices_InvoiceDataId",
|
|
||||||
table: "Payments");
|
|
||||||
|
|
||||||
migrationBuilder.DropForeignKey(
|
|
||||||
name: "FK_PendingInvoices_Invoices_Id",
|
|
||||||
table: "PendingInvoices");
|
|
||||||
|
|
||||||
migrationBuilder.DropForeignKey(
|
|
||||||
name: "FK_RefundAddresses_Invoices_InvoiceDataId",
|
|
||||||
table: "RefundAddresses");
|
|
||||||
|
|
||||||
migrationBuilder.AddForeignKey(
|
|
||||||
name: "FK_AddressInvoices_Invoices_InvoiceDataId",
|
|
||||||
table: "AddressInvoices",
|
|
||||||
column: "InvoiceDataId",
|
|
||||||
principalTable: "Invoices",
|
|
||||||
principalColumn: "Id",
|
|
||||||
onDelete: ReferentialAction.Restrict);
|
|
||||||
|
|
||||||
migrationBuilder.AddForeignKey(
|
|
||||||
name: "FK_Apps_Stores_StoreDataId",
|
|
||||||
table: "Apps",
|
|
||||||
column: "StoreDataId",
|
|
||||||
principalTable: "Stores",
|
|
||||||
principalColumn: "Id",
|
|
||||||
onDelete: ReferentialAction.Restrict);
|
|
||||||
|
|
||||||
migrationBuilder.AddForeignKey(
|
|
||||||
name: "FK_Invoices_Stores_StoreDataId",
|
|
||||||
table: "Invoices",
|
|
||||||
column: "StoreDataId",
|
|
||||||
principalTable: "Stores",
|
|
||||||
principalColumn: "Id",
|
|
||||||
onDelete: ReferentialAction.Restrict);
|
|
||||||
|
|
||||||
migrationBuilder.AddForeignKey(
|
|
||||||
name: "FK_Payments_Invoices_InvoiceDataId",
|
|
||||||
table: "Payments",
|
|
||||||
column: "InvoiceDataId",
|
|
||||||
principalTable: "Invoices",
|
|
||||||
principalColumn: "Id",
|
|
||||||
onDelete: ReferentialAction.Restrict);
|
|
||||||
|
|
||||||
migrationBuilder.AddForeignKey(
|
|
||||||
name: "FK_RefundAddresses_Invoices_InvoiceDataId",
|
|
||||||
table: "RefundAddresses",
|
|
||||||
column: "InvoiceDataId",
|
|
||||||
principalTable: "Invoices",
|
|
||||||
principalColumn: "Id",
|
|
||||||
onDelete: ReferentialAction.Restrict);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,50 +0,0 @@
|
|||||||
using BTCPayServer.Data;
|
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
|
|
||||||
namespace BTCPayServer.Migrations
|
|
||||||
{
|
|
||||||
[DbContext(typeof(ApplicationDbContext))]
|
|
||||||
[Migration("20190121133309_AddPaymentRequests")]
|
|
||||||
public partial class AddPaymentRequests : Migration
|
|
||||||
{
|
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "PaymentRequests",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
Id = table.Column<string>(nullable: false, maxLength: null),
|
|
||||||
StoreDataId = table.Column<string>(nullable: true, maxLength: null),
|
|
||||||
Status = table.Column<int>(nullable: false),
|
|
||||||
Blob = table.Column<byte[]>(nullable: true)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_PaymentRequests", x => x.Id);
|
|
||||||
table.ForeignKey(
|
|
||||||
name: "FK_PaymentRequests_Stores_StoreDataId",
|
|
||||||
column: x => x.StoreDataId,
|
|
||||||
principalTable: "Stores",
|
|
||||||
principalColumn: "Id",
|
|
||||||
onDelete: ReferentialAction.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "IX_PaymentRequests_Status",
|
|
||||||
table: "PaymentRequests",
|
|
||||||
column: "Status");
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "IX_PaymentRequests_StoreDataId",
|
|
||||||
table: "PaymentRequests",
|
|
||||||
column: "StoreDataId");
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void Down(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "PaymentRequests");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
using BTCPayServer.Data;
|
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
|
|
||||||
namespace BTCPayServer.Migrations
|
|
||||||
{
|
|
||||||
[DbContext(typeof(ApplicationDbContext))]
|
|
||||||
[Migration("20190219032533_AppsTagging")]
|
|
||||||
public partial class AppsTagging : Migration
|
|
||||||
{
|
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.AddColumn<bool>(
|
|
||||||
name: "TagAllInvoices",
|
|
||||||
table: "Apps",
|
|
||||||
nullable: false,
|
|
||||||
defaultValue: false);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void Down(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.DropColumn(
|
|
||||||
name: "TagAllInvoices",
|
|
||||||
table: "Apps");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,171 +0,0 @@
|
|||||||
using System;
|
|
||||||
using BTCPayServer.Data;
|
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
|
|
||||||
namespace BTCPayServer.Migrations
|
|
||||||
{
|
|
||||||
[DbContext(typeof(ApplicationDbContext))]
|
|
||||||
[Migration("20190225091644_AddOpenIddict")]
|
|
||||||
public partial class AddOpenIddict : Migration
|
|
||||||
{
|
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "OpenIddictApplications",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
ClientId = table.Column<string>(maxLength: 100, nullable: false),
|
|
||||||
ClientSecret = table.Column<string>(nullable: true),
|
|
||||||
ConcurrencyToken = table.Column<string>(maxLength: 50, nullable: true),
|
|
||||||
ConsentType = table.Column<string>(nullable: true),
|
|
||||||
DisplayName = table.Column<string>(nullable: true),
|
|
||||||
Id = table.Column<string>(nullable: false, maxLength: null),
|
|
||||||
Permissions = table.Column<string>(nullable: true),
|
|
||||||
PostLogoutRedirectUris = table.Column<string>(nullable: true),
|
|
||||||
Properties = table.Column<string>(nullable: true),
|
|
||||||
RedirectUris = table.Column<string>(nullable: true),
|
|
||||||
Type = table.Column<string>(maxLength: 25, nullable: false),
|
|
||||||
ApplicationUserId = table.Column<string>(nullable: true, maxLength: null)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_OpenIddictApplications", x => x.Id);
|
|
||||||
table.ForeignKey(
|
|
||||||
name: "FK_OpenIddictApplications_AspNetUsers_ApplicationUserId",
|
|
||||||
column: x => x.ApplicationUserId,
|
|
||||||
principalTable: "AspNetUsers",
|
|
||||||
principalColumn: "Id",
|
|
||||||
onDelete: ReferentialAction.Restrict);
|
|
||||||
});
|
|
||||||
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "OpenIddictScopes",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
ConcurrencyToken = table.Column<string>(maxLength: 50, nullable: true),
|
|
||||||
Description = table.Column<string>(nullable: true),
|
|
||||||
DisplayName = table.Column<string>(nullable: true),
|
|
||||||
Id = table.Column<string>(nullable: false, maxLength: null),
|
|
||||||
Name = table.Column<string>(maxLength: 200, nullable: false),
|
|
||||||
Properties = table.Column<string>(nullable: true),
|
|
||||||
Resources = table.Column<string>(nullable: true)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_OpenIddictScopes", x => x.Id);
|
|
||||||
});
|
|
||||||
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "OpenIddictAuthorizations",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
ApplicationId = table.Column<string>(nullable: true, maxLength: null),
|
|
||||||
ConcurrencyToken = table.Column<string>(maxLength: 50, nullable: true),
|
|
||||||
Id = table.Column<string>(nullable: false, maxLength: null),
|
|
||||||
Properties = table.Column<string>(nullable: true),
|
|
||||||
Scopes = table.Column<string>(nullable: true),
|
|
||||||
Status = table.Column<string>(maxLength: 25, nullable: false),
|
|
||||||
Subject = table.Column<string>(maxLength: 450, nullable: false),
|
|
||||||
Type = table.Column<string>(maxLength: 25, nullable: false)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_OpenIddictAuthorizations", x => x.Id);
|
|
||||||
table.ForeignKey(
|
|
||||||
name: "FK_OpenIddictAuthorizations_OpenIddictApplications_ApplicationId",
|
|
||||||
column: x => x.ApplicationId,
|
|
||||||
principalTable: "OpenIddictApplications",
|
|
||||||
principalColumn: "Id",
|
|
||||||
onDelete: ReferentialAction.Restrict);
|
|
||||||
});
|
|
||||||
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "OpenIddictTokens",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
ApplicationId = table.Column<string>(nullable: true, maxLength: null),
|
|
||||||
AuthorizationId = table.Column<string>(nullable: true, maxLength: null),
|
|
||||||
ConcurrencyToken = table.Column<string>(maxLength: 50, nullable: true),
|
|
||||||
CreationDate = table.Column<DateTimeOffset>(nullable: true),
|
|
||||||
ExpirationDate = table.Column<DateTimeOffset>(nullable: true),
|
|
||||||
Id = table.Column<string>(nullable: false, maxLength: null),
|
|
||||||
Payload = table.Column<string>(nullable: true),
|
|
||||||
Properties = table.Column<string>(nullable: true),
|
|
||||||
ReferenceId = table.Column<string>(maxLength: 100, nullable: true),
|
|
||||||
Status = table.Column<string>(maxLength: 25, nullable: false),
|
|
||||||
Subject = table.Column<string>(maxLength: 450, nullable: false),
|
|
||||||
Type = table.Column<string>(maxLength: 25, nullable: false)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_OpenIddictTokens", x => x.Id);
|
|
||||||
table.ForeignKey(
|
|
||||||
name: "FK_OpenIddictTokens_OpenIddictApplications_ApplicationId",
|
|
||||||
column: x => x.ApplicationId,
|
|
||||||
principalTable: "OpenIddictApplications",
|
|
||||||
principalColumn: "Id",
|
|
||||||
onDelete: ReferentialAction.Restrict);
|
|
||||||
table.ForeignKey(
|
|
||||||
name: "FK_OpenIddictTokens_OpenIddictAuthorizations_AuthorizationId",
|
|
||||||
column: x => x.AuthorizationId,
|
|
||||||
principalTable: "OpenIddictAuthorizations",
|
|
||||||
principalColumn: "Id",
|
|
||||||
onDelete: ReferentialAction.Restrict);
|
|
||||||
});
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "IX_OpenIddictApplications_ApplicationUserId",
|
|
||||||
table: "OpenIddictApplications",
|
|
||||||
column: "ApplicationUserId");
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "IX_OpenIddictApplications_ClientId",
|
|
||||||
table: "OpenIddictApplications",
|
|
||||||
column: "ClientId",
|
|
||||||
unique: true);
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "IX_OpenIddictAuthorizations_ApplicationId_Status_Subject_Type",
|
|
||||||
table: "OpenIddictAuthorizations",
|
|
||||||
columns: new[] { "ApplicationId", "Status", "Subject", "Type" });
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "IX_OpenIddictScopes_Name",
|
|
||||||
table: "OpenIddictScopes",
|
|
||||||
column: "Name",
|
|
||||||
unique: true);
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "IX_OpenIddictTokens_AuthorizationId",
|
|
||||||
table: "OpenIddictTokens",
|
|
||||||
column: "AuthorizationId");
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "IX_OpenIddictTokens_ReferenceId",
|
|
||||||
table: "OpenIddictTokens",
|
|
||||||
column: "ReferenceId",
|
|
||||||
unique: true);
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "IX_OpenIddictTokens_ApplicationId_Status_Subject_Type",
|
|
||||||
table: "OpenIddictTokens",
|
|
||||||
columns: new[] { "ApplicationId", "Status", "Subject", "Type" });
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void Down(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "OpenIddictScopes");
|
|
||||||
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "OpenIddictTokens");
|
|
||||||
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "OpenIddictAuthorizations");
|
|
||||||
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "OpenIddictApplications");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
using System;
|
|
||||||
using BTCPayServer.Data;
|
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
|
|
||||||
namespace BTCPayServer.Migrations
|
|
||||||
{
|
|
||||||
[DbContext(typeof(ApplicationDbContext))]
|
|
||||||
[Migration("20190324141717_AddFiles")]
|
|
||||||
public partial class AddFiles : Migration
|
|
||||||
{
|
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "Files",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
Id = table.Column<string>(nullable: false, maxLength: null),
|
|
||||||
FileName = table.Column<string>(nullable: true),
|
|
||||||
StorageFileName = table.Column<string>(nullable: true),
|
|
||||||
Timestamp = table.Column<DateTime>(nullable: false),
|
|
||||||
ApplicationUserId = table.Column<string>(nullable: true, maxLength: null)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_Files", x => x.Id);
|
|
||||||
table.ForeignKey(
|
|
||||||
name: "FK_Files_AspNetUsers_ApplicationUserId",
|
|
||||||
column: x => x.ApplicationUserId,
|
|
||||||
principalTable: "AspNetUsers",
|
|
||||||
principalColumn: "Id",
|
|
||||||
onDelete: ReferentialAction.Restrict);
|
|
||||||
});
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "IX_Files_ApplicationUserId",
|
|
||||||
table: "Files",
|
|
||||||
column: "ApplicationUserId");
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void Down(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "Files");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,57 +0,0 @@
|
|||||||
using BTCPayServer.Data;
|
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
|
|
||||||
namespace BTCPayServer.Migrations
|
|
||||||
{
|
|
||||||
[DbContext(typeof(ApplicationDbContext))]
|
|
||||||
[Migration("20190425081749_AddU2fDevices")]
|
|
||||||
public partial class AddU2fDevices : Migration
|
|
||||||
{
|
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.DropColumn(
|
|
||||||
name: "Facade",
|
|
||||||
table: "PairedSINData");
|
|
||||||
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "U2FDevices",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
Id = table.Column<string>(nullable: false, maxLength: null),
|
|
||||||
Name = table.Column<string>(nullable: true),
|
|
||||||
KeyHandle = table.Column<byte[]>(nullable: false),
|
|
||||||
PublicKey = table.Column<byte[]>(nullable: false),
|
|
||||||
AttestationCert = table.Column<byte[]>(nullable: false),
|
|
||||||
Counter = table.Column<int>(nullable: false),
|
|
||||||
ApplicationUserId = table.Column<string>(nullable: true, maxLength: null)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_U2FDevices", x => x.Id);
|
|
||||||
table.ForeignKey(
|
|
||||||
name: "FK_U2FDevices_AspNetUsers_ApplicationUserId",
|
|
||||||
column: x => x.ApplicationUserId,
|
|
||||||
principalTable: "AspNetUsers",
|
|
||||||
principalColumn: "Id",
|
|
||||||
onDelete: ReferentialAction.Restrict);
|
|
||||||
});
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "IX_U2FDevices_ApplicationUserId",
|
|
||||||
table: "U2FDevices",
|
|
||||||
column: "ApplicationUserId");
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void Down(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "U2FDevices");
|
|
||||||
//if it did not support dropping it, then it is still here and re-adding it would throw
|
|
||||||
migrationBuilder.AddColumn<string>(
|
|
||||||
name: "Facade",
|
|
||||||
table: "PairedSINData",
|
|
||||||
nullable: true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
using System;
|
|
||||||
using BTCPayServer.Data;
|
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
|
|
||||||
namespace BTCPayServer.Migrations
|
|
||||||
{
|
|
||||||
[DbContext(typeof(ApplicationDbContext))]
|
|
||||||
[Migration("20190701082105_sort_paymentrequests")]
|
|
||||||
public partial class sort_paymentrequests : Migration
|
|
||||||
{
|
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.AddColumn<DateTimeOffset>(
|
|
||||||
name: "Created",
|
|
||||||
table: "PaymentRequests",
|
|
||||||
nullable: false,
|
|
||||||
defaultValue: new DateTimeOffset(new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)));
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void Down(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.DropColumn(
|
|
||||||
name: "Created",
|
|
||||||
table: "PaymentRequests");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,55 +0,0 @@
|
|||||||
using BTCPayServer.Data;
|
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
|
|
||||||
namespace BTCPayServer.Migrations
|
|
||||||
{
|
|
||||||
[DbContext(typeof(ApplicationDbContext))]
|
|
||||||
[Migration("20190802142637_WalletData")]
|
|
||||||
public partial class WalletData : Migration
|
|
||||||
{
|
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "Wallets",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
Id = table.Column<string>(nullable: false, maxLength: null),
|
|
||||||
Blob = table.Column<byte[]>(nullable: true)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_Wallets", x => x.Id);
|
|
||||||
});
|
|
||||||
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "WalletTransactions",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
WalletDataId = table.Column<string>(nullable: false, maxLength: null),
|
|
||||||
TransactionId = table.Column<string>(nullable: false, maxLength: null),
|
|
||||||
Labels = table.Column<string>(nullable: true),
|
|
||||||
Blob = table.Column<byte[]>(nullable: true)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_WalletTransactions", x => new { x.WalletDataId, x.TransactionId });
|
|
||||||
table.ForeignKey(
|
|
||||||
name: "FK_WalletTransactions_Wallets_WalletDataId",
|
|
||||||
column: x => x.WalletDataId,
|
|
||||||
principalTable: "Wallets",
|
|
||||||
principalColumn: "Id",
|
|
||||||
onDelete: ReferentialAction.Cascade);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void Down(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "WalletTransactions");
|
|
||||||
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "Wallets");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,61 +0,0 @@
|
|||||||
using System;
|
|
||||||
using BTCPayServer.Data;
|
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
|
|
||||||
namespace BTCPayServer.Migrations
|
|
||||||
{
|
|
||||||
[DbContext(typeof(ApplicationDbContext))]
|
|
||||||
[Migration("20200110064617_OpenIddictUpdate")]
|
|
||||||
public partial class OpenIddictUpdate : Migration
|
|
||||||
{
|
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.AlterColumn<string>(
|
|
||||||
name: "Subject",
|
|
||||||
table: "OpenIddictTokens",
|
|
||||||
maxLength: 450,
|
|
||||||
nullable: true,
|
|
||||||
oldClrType: typeof(string),
|
|
||||||
oldMaxLength: 450);
|
|
||||||
|
|
||||||
migrationBuilder.AlterColumn<string>(
|
|
||||||
name: "Subject",
|
|
||||||
table: "OpenIddictAuthorizations",
|
|
||||||
maxLength: 450,
|
|
||||||
nullable: true,
|
|
||||||
oldClrType: typeof(string),
|
|
||||||
oldMaxLength: 450);
|
|
||||||
|
|
||||||
migrationBuilder.AddColumn<string>(
|
|
||||||
name: "Requirements",
|
|
||||||
table: "OpenIddictApplications",
|
|
||||||
nullable: true);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void Down(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.DropColumn(
|
|
||||||
name: "Requirements",
|
|
||||||
table: "OpenIddictApplications");
|
|
||||||
|
|
||||||
migrationBuilder.AlterColumn<string>(
|
|
||||||
name: "Subject",
|
|
||||||
table: "OpenIddictTokens",
|
|
||||||
maxLength: 450,
|
|
||||||
nullable: false,
|
|
||||||
oldClrType: typeof(string),
|
|
||||||
oldMaxLength: 450,
|
|
||||||
oldNullable: true);
|
|
||||||
|
|
||||||
migrationBuilder.AlterColumn<string>(
|
|
||||||
name: "Subject",
|
|
||||||
table: "OpenIddictAuthorizations",
|
|
||||||
maxLength: 450,
|
|
||||||
nullable: false,
|
|
||||||
oldClrType: typeof(string),
|
|
||||||
oldMaxLength: 450,
|
|
||||||
oldNullable: true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,67 +0,0 @@
|
|||||||
using BTCPayServer.Data;
|
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
|
|
||||||
namespace BTCPayServer.Migrations
|
|
||||||
{
|
|
||||||
[DbContext(typeof(ApplicationDbContext))]
|
|
||||||
[Migration("20200119130108_ExtendApiKeys")]
|
|
||||||
public partial class ExtendApiKeys : Migration
|
|
||||||
{
|
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.AddColumn<string>(
|
|
||||||
name: "Permissions",
|
|
||||||
table: "ApiKeys",
|
|
||||||
nullable: true);
|
|
||||||
|
|
||||||
migrationBuilder.AddColumn<int>(
|
|
||||||
name: "Type",
|
|
||||||
table: "ApiKeys",
|
|
||||||
nullable: false,
|
|
||||||
defaultValue: 0);
|
|
||||||
|
|
||||||
migrationBuilder.AddColumn<string>(
|
|
||||||
name: "UserId",
|
|
||||||
table: "ApiKeys",
|
|
||||||
maxLength: 50,
|
|
||||||
nullable: true);
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "IX_ApiKeys_UserId",
|
|
||||||
table: "ApiKeys",
|
|
||||||
column: "UserId");
|
|
||||||
|
|
||||||
migrationBuilder.AddForeignKey(
|
|
||||||
name: "FK_ApiKeys_AspNetUsers_UserId",
|
|
||||||
table: "ApiKeys",
|
|
||||||
column: "UserId",
|
|
||||||
principalTable: "AspNetUsers",
|
|
||||||
principalColumn: "Id",
|
|
||||||
onDelete: ReferentialAction.Cascade);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void Down(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.DropForeignKey(
|
|
||||||
name: "FK_ApiKeys_AspNetUsers_UserId",
|
|
||||||
table: "ApiKeys");
|
|
||||||
|
|
||||||
migrationBuilder.DropIndex(
|
|
||||||
name: "IX_ApiKeys_UserId",
|
|
||||||
table: "ApiKeys");
|
|
||||||
|
|
||||||
migrationBuilder.DropColumn(
|
|
||||||
name: "Permissions",
|
|
||||||
table: "ApiKeys");
|
|
||||||
|
|
||||||
migrationBuilder.DropColumn(
|
|
||||||
name: "Type",
|
|
||||||
table: "ApiKeys");
|
|
||||||
|
|
||||||
migrationBuilder.DropColumn(
|
|
||||||
name: "UserId",
|
|
||||||
table: "ApiKeys");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,172 +0,0 @@
|
|||||||
using System;
|
|
||||||
using BTCPayServer.Data;
|
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
|
|
||||||
namespace BTCPayServer.Migrations
|
|
||||||
{
|
|
||||||
[DbContext(typeof(ApplicationDbContext))]
|
|
||||||
[Migration("20200224134444_Remove_OpenIddict")]
|
|
||||||
public partial class Remove_OpenIddict : Migration
|
|
||||||
{
|
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "OpenIddictScopes");
|
|
||||||
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "OpenIddictTokens");
|
|
||||||
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "OpenIddictAuthorizations");
|
|
||||||
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "OpenIddictApplications");
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void Down(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "OpenIddictApplications",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
Id = table.Column<string>(type: "TEXT", nullable: false, maxLength: null),
|
|
||||||
ApplicationUserId = table.Column<string>(type: "TEXT", nullable: true, maxLength: null),
|
|
||||||
ClientId = table.Column<string>(type: "TEXT", maxLength: 100, nullable: false),
|
|
||||||
ClientSecret = table.Column<string>(type: "TEXT", nullable: true),
|
|
||||||
ConcurrencyToken = table.Column<string>(type: "TEXT", maxLength: 50, nullable: true),
|
|
||||||
ConsentType = table.Column<string>(type: "TEXT", nullable: true),
|
|
||||||
DisplayName = table.Column<string>(type: "TEXT", nullable: true),
|
|
||||||
Permissions = table.Column<string>(type: "TEXT", nullable: true),
|
|
||||||
PostLogoutRedirectUris = table.Column<string>(type: "TEXT", nullable: true),
|
|
||||||
Properties = table.Column<string>(type: "TEXT", nullable: true),
|
|
||||||
RedirectUris = table.Column<string>(type: "TEXT", nullable: true),
|
|
||||||
Requirements = table.Column<string>(type: "TEXT", nullable: true),
|
|
||||||
Type = table.Column<string>(type: "TEXT", maxLength: 25, nullable: false)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_OpenIddictApplications", x => x.Id);
|
|
||||||
table.ForeignKey(
|
|
||||||
name: "FK_OpenIddictApplications_AspNetUsers_ApplicationUserId",
|
|
||||||
column: x => x.ApplicationUserId,
|
|
||||||
principalTable: "AspNetUsers",
|
|
||||||
principalColumn: "Id",
|
|
||||||
onDelete: ReferentialAction.Restrict);
|
|
||||||
});
|
|
||||||
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "OpenIddictScopes",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
Id = table.Column<string>(type: "TEXT", nullable: false, maxLength: null),
|
|
||||||
ConcurrencyToken = table.Column<string>(type: "TEXT", maxLength: 50, nullable: true),
|
|
||||||
Description = table.Column<string>(type: "TEXT", nullable: true),
|
|
||||||
DisplayName = table.Column<string>(type: "TEXT", nullable: true),
|
|
||||||
Name = table.Column<string>(type: "TEXT", maxLength: 200, nullable: false),
|
|
||||||
Properties = table.Column<string>(type: "TEXT", nullable: true),
|
|
||||||
Resources = table.Column<string>(type: "TEXT", nullable: true)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_OpenIddictScopes", x => x.Id);
|
|
||||||
});
|
|
||||||
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "OpenIddictAuthorizations",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
Id = table.Column<string>(type: "TEXT", nullable: false, maxLength: null),
|
|
||||||
ApplicationId = table.Column<string>(type: "TEXT", nullable: true, maxLength: null),
|
|
||||||
ConcurrencyToken = table.Column<string>(type: "TEXT", maxLength: 50, nullable: true),
|
|
||||||
Properties = table.Column<string>(type: "TEXT", nullable: true),
|
|
||||||
Scopes = table.Column<string>(type: "TEXT", nullable: true),
|
|
||||||
Status = table.Column<string>(type: "TEXT", maxLength: 25, nullable: false),
|
|
||||||
Subject = table.Column<string>(type: "TEXT", maxLength: 450, nullable: true),
|
|
||||||
Type = table.Column<string>(type: "TEXT", maxLength: 25, nullable: false)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_OpenIddictAuthorizations", x => x.Id);
|
|
||||||
table.ForeignKey(
|
|
||||||
name: "FK_OpenIddictAuthorizations_OpenIddictApplications_ApplicationId",
|
|
||||||
column: x => x.ApplicationId,
|
|
||||||
principalTable: "OpenIddictApplications",
|
|
||||||
principalColumn: "Id",
|
|
||||||
onDelete: ReferentialAction.Restrict);
|
|
||||||
});
|
|
||||||
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "OpenIddictTokens",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
Id = table.Column<string>(type: "TEXT", nullable: false, maxLength: null),
|
|
||||||
ApplicationId = table.Column<string>(type: "TEXT", nullable: true, maxLength: null),
|
|
||||||
AuthorizationId = table.Column<string>(type: "TEXT", nullable: true, maxLength: null),
|
|
||||||
ConcurrencyToken = table.Column<string>(type: "TEXT", maxLength: 50, nullable: true),
|
|
||||||
CreationDate = table.Column<DateTimeOffset>(type: "TEXT", nullable: true),
|
|
||||||
ExpirationDate = table.Column<DateTimeOffset>(type: "TEXT", nullable: true),
|
|
||||||
Payload = table.Column<string>(type: "TEXT", nullable: true),
|
|
||||||
Properties = table.Column<string>(type: "TEXT", nullable: true),
|
|
||||||
ReferenceId = table.Column<string>(type: "TEXT", maxLength: 100, nullable: true),
|
|
||||||
Status = table.Column<string>(type: "TEXT", maxLength: 25, nullable: false),
|
|
||||||
Subject = table.Column<string>(type: "TEXT", maxLength: 450, nullable: true),
|
|
||||||
Type = table.Column<string>(type: "TEXT", maxLength: 25, nullable: false)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_OpenIddictTokens", x => x.Id);
|
|
||||||
table.ForeignKey(
|
|
||||||
name: "FK_OpenIddictTokens_OpenIddictApplications_ApplicationId",
|
|
||||||
column: x => x.ApplicationId,
|
|
||||||
principalTable: "OpenIddictApplications",
|
|
||||||
principalColumn: "Id",
|
|
||||||
onDelete: ReferentialAction.Restrict);
|
|
||||||
table.ForeignKey(
|
|
||||||
name: "FK_OpenIddictTokens_OpenIddictAuthorizations_AuthorizationId",
|
|
||||||
column: x => x.AuthorizationId,
|
|
||||||
principalTable: "OpenIddictAuthorizations",
|
|
||||||
principalColumn: "Id",
|
|
||||||
onDelete: ReferentialAction.Restrict);
|
|
||||||
});
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "IX_OpenIddictApplications_ApplicationUserId",
|
|
||||||
table: "OpenIddictApplications",
|
|
||||||
column: "ApplicationUserId");
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "IX_OpenIddictApplications_ClientId",
|
|
||||||
table: "OpenIddictApplications",
|
|
||||||
column: "ClientId",
|
|
||||||
unique: true);
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "IX_OpenIddictAuthorizations_ApplicationId_Status_Subject_Type",
|
|
||||||
table: "OpenIddictAuthorizations",
|
|
||||||
columns: new[] { "ApplicationId", "Status", "Subject", "Type" });
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "IX_OpenIddictScopes_Name",
|
|
||||||
table: "OpenIddictScopes",
|
|
||||||
column: "Name",
|
|
||||||
unique: true);
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "IX_OpenIddictTokens_AuthorizationId",
|
|
||||||
table: "OpenIddictTokens",
|
|
||||||
column: "AuthorizationId");
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "IX_OpenIddictTokens_ReferenceId",
|
|
||||||
table: "OpenIddictTokens",
|
|
||||||
column: "ReferenceId",
|
|
||||||
unique: true);
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "IX_OpenIddictTokens_ApplicationId_Status_Subject_Type",
|
|
||||||
table: "OpenIddictTokens",
|
|
||||||
columns: new[] { "ApplicationId", "Status", "Subject", "Type" });
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -6,22 +6,9 @@ namespace BTCPayServer.Migrations
|
|||||||
{
|
{
|
||||||
[DbContext(typeof(ApplicationDbContext))]
|
[DbContext(typeof(ApplicationDbContext))]
|
||||||
[Migration("20200225133433_AddApiKeyLabel")]
|
[Migration("20200225133433_AddApiKeyLabel")]
|
||||||
public partial class AddApiKeyLabel : Migration
|
[DBScript("000.Init.sql")]
|
||||||
|
public partial class AddApiKeyLabel : DBScriptsMigration
|
||||||
{
|
{
|
||||||
|
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.AddColumn<string>(
|
|
||||||
name: "Label",
|
|
||||||
table: "ApiKeys",
|
|
||||||
nullable: true);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void Down(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.DropColumn(
|
|
||||||
name: "Label",
|
|
||||||
table: "ApiKeys");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2738,17 +2738,6 @@ namespace BTCPayServer.Tests
|
|||||||
Multiplier = 2
|
Multiplier = 2
|
||||||
}
|
}
|
||||||
})));
|
})));
|
||||||
blob.AdditionalData.Add("walletKeyPathRoots", JToken.Parse(
|
|
||||||
serializer.ToString(new Dictionary<string, string>()
|
|
||||||
{
|
|
||||||
{
|
|
||||||
PaymentTypes.CHAIN.GetPaymentMethodId("BTC").ToString(),
|
|
||||||
new KeyPath("44'/0'/0'").ToString()
|
|
||||||
}
|
|
||||||
})));
|
|
||||||
|
|
||||||
blob.AdditionalData.Add("networkFeeDisabled", JToken.Parse(
|
|
||||||
serializer.ToString((bool?)true)));
|
|
||||||
|
|
||||||
blob.AdditionalData.Add("onChainMinValue", JToken.Parse(
|
blob.AdditionalData.Add("onChainMinValue", JToken.Parse(
|
||||||
serializer.ToString(new CurrencyValue()
|
serializer.ToString(new CurrencyValue()
|
||||||
@@ -2775,12 +2764,7 @@ namespace BTCPayServer.Tests
|
|||||||
Assert.Contains(blob.PaymentMethodCriteria,
|
Assert.Contains(blob.PaymentMethodCriteria,
|
||||||
criteria => criteria.PaymentMethod == PaymentTypes.CHAIN.GetPaymentMethodId("BTC") &&
|
criteria => criteria.PaymentMethod == PaymentTypes.CHAIN.GetPaymentMethodId("BTC") &&
|
||||||
criteria.Above && criteria.Value.Value == 5m && criteria.Value.Currency == "USD");
|
criteria.Above && criteria.Value.Value == 5m && criteria.Value.Currency == "USD");
|
||||||
Assert.Equal(NetworkFeeMode.Never, blob.NetworkFeeMode);
|
|
||||||
var handlers = tester.PayTester.GetService<PaymentMethodHandlerDictionary>();
|
var handlers = tester.PayTester.GetService<PaymentMethodHandlerDictionary>();
|
||||||
Assert.Contains(store.GetPaymentMethodConfigs(handlers), method =>
|
|
||||||
method.Value is DerivationSchemeSettings dss &&
|
|
||||||
method.Key == PaymentTypes.CHAIN.GetPaymentMethodId("BTC") &&
|
|
||||||
dss.AccountKeySettings[0].AccountKeyPath == new KeyPath("44'/0'/0'"));
|
|
||||||
|
|
||||||
await acc.ImportOldInvoices();
|
await acc.ImportOldInvoices();
|
||||||
var dbContext = tester.PayTester.GetService<ApplicationDbContextFactory>().CreateContext();
|
var dbContext = tester.PayTester.GetService<ApplicationDbContextFactory>().CreateContext();
|
||||||
|
|||||||
@@ -224,8 +224,8 @@ namespace BTCPayServer.Controllers.Greenfield
|
|||||||
await _userManager.AddToRoleAsync(user, Roles.ServerAdmin);
|
await _userManager.AddToRoleAsync(user, Roles.ServerAdmin);
|
||||||
if (!anyAdmin)
|
if (!anyAdmin)
|
||||||
{
|
{
|
||||||
var settings = await _settingsRepository.GetSettingAsync<ThemeSettings>();
|
var settings = await _settingsRepository.GetSettingAsync<ThemeSettings>() ?? new ThemeSettings();
|
||||||
if (settings != null)
|
if (settings.FirstRun)
|
||||||
{
|
{
|
||||||
settings.FirstRun = false;
|
settings.FirstRun = false;
|
||||||
await _settingsRepository.UpdateSetting(settings);
|
await _settingsRepository.UpdateSetting(settings);
|
||||||
|
|||||||
@@ -52,7 +52,6 @@ namespace BTCPayServer.Hosting
|
|||||||
private readonly LightningAddressService _lightningAddressService;
|
private readonly LightningAddressService _lightningAddressService;
|
||||||
private readonly ILogger<MigrationStartupTask> _logger;
|
private readonly ILogger<MigrationStartupTask> _logger;
|
||||||
private readonly LightningClientFactoryService _lightningClientFactoryService;
|
private readonly LightningClientFactoryService _lightningClientFactoryService;
|
||||||
private readonly UserManager<ApplicationUser> _userManager;
|
|
||||||
|
|
||||||
public IOptions<LightningNetworkOptions> LightningOptions { get; }
|
public IOptions<LightningNetworkOptions> LightningOptions { get; }
|
||||||
|
|
||||||
@@ -60,7 +59,6 @@ namespace BTCPayServer.Hosting
|
|||||||
PaymentMethodHandlerDictionary handlers,
|
PaymentMethodHandlerDictionary handlers,
|
||||||
StoreRepository storeRepository,
|
StoreRepository storeRepository,
|
||||||
ApplicationDbContextFactory dbContextFactory,
|
ApplicationDbContextFactory dbContextFactory,
|
||||||
UserManager<ApplicationUser> userManager,
|
|
||||||
IOptions<LightningNetworkOptions> lightningOptions,
|
IOptions<LightningNetworkOptions> lightningOptions,
|
||||||
SettingsRepository settingsRepository,
|
SettingsRepository settingsRepository,
|
||||||
AppService appService,
|
AppService appService,
|
||||||
@@ -80,7 +78,6 @@ namespace BTCPayServer.Hosting
|
|||||||
_lightningAddressService = lightningAddressService;
|
_lightningAddressService = lightningAddressService;
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
_lightningClientFactoryService = lightningClientFactoryService;
|
_lightningClientFactoryService = lightningClientFactoryService;
|
||||||
_userManager = userManager;
|
|
||||||
LightningOptions = lightningOptions;
|
LightningOptions = lightningOptions;
|
||||||
}
|
}
|
||||||
public async Task ExecuteAsync(CancellationToken cancellationToken = default)
|
public async Task ExecuteAsync(CancellationToken cancellationToken = default)
|
||||||
@@ -98,9 +95,9 @@ namespace BTCPayServer.Hosting
|
|||||||
prop.SetValue(settings, true);
|
prop.SetValue(settings, true);
|
||||||
}
|
}
|
||||||
// Ensure these checks still get run
|
// Ensure these checks still get run
|
||||||
settings.CheckedFirstRun = false;
|
|
||||||
settings.FileSystemStorageAsDefault = false;
|
settings.FileSystemStorageAsDefault = false;
|
||||||
await _Settings.UpdateSetting(settings);
|
await _Settings.UpdateSetting(settings);
|
||||||
|
await _Settings.UpdateSetting(new ThemeSettings());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!settings.PaymentMethodCriteria)
|
if (!settings.PaymentMethodCriteria)
|
||||||
@@ -109,45 +106,6 @@ namespace BTCPayServer.Hosting
|
|||||||
settings.PaymentMethodCriteria = true;
|
settings.PaymentMethodCriteria = true;
|
||||||
await _Settings.UpdateSetting(settings);
|
await _Settings.UpdateSetting(settings);
|
||||||
}
|
}
|
||||||
if (!settings.DeprecatedLightningConnectionStringCheck)
|
|
||||||
{
|
|
||||||
await DeprecatedLightningConnectionStringCheck();
|
|
||||||
settings.DeprecatedLightningConnectionStringCheck = true;
|
|
||||||
await _Settings.UpdateSetting(settings);
|
|
||||||
}
|
|
||||||
if (!settings.ConvertMultiplierToSpread)
|
|
||||||
{
|
|
||||||
await ConvertMultiplierToSpread();
|
|
||||||
settings.ConvertMultiplierToSpread = true;
|
|
||||||
await _Settings.UpdateSetting(settings);
|
|
||||||
}
|
|
||||||
if (!settings.ConvertNetworkFeeProperty)
|
|
||||||
{
|
|
||||||
await ConvertNetworkFeeProperty();
|
|
||||||
settings.ConvertNetworkFeeProperty = true;
|
|
||||||
await _Settings.UpdateSetting(settings);
|
|
||||||
}
|
|
||||||
if (!settings.ConvertCrowdfundOldSettings)
|
|
||||||
{
|
|
||||||
await ConvertCrowdfundOldSettings();
|
|
||||||
settings.ConvertCrowdfundOldSettings = true;
|
|
||||||
await _Settings.UpdateSetting(settings);
|
|
||||||
}
|
|
||||||
if (!settings.ConvertWalletKeyPathRoots)
|
|
||||||
{
|
|
||||||
await ConvertConvertWalletKeyPathRoots();
|
|
||||||
settings.ConvertWalletKeyPathRoots = true;
|
|
||||||
await _Settings.UpdateSetting(settings);
|
|
||||||
}
|
|
||||||
if (!settings.CheckedFirstRun)
|
|
||||||
{
|
|
||||||
var themeSettings = await _Settings.GetSettingAsync<ThemeSettings>() ?? new ThemeSettings();
|
|
||||||
var admin = await _userManager.GetUsersInRoleAsync(Roles.ServerAdmin);
|
|
||||||
themeSettings.FirstRun = admin.Count == 0;
|
|
||||||
await _Settings.UpdateSetting(themeSettings);
|
|
||||||
settings.CheckedFirstRun = true;
|
|
||||||
await _Settings.UpdateSetting(settings);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!settings.TransitionToStoreBlobAdditionalData)
|
if (!settings.TransitionToStoreBlobAdditionalData)
|
||||||
{
|
{
|
||||||
@@ -950,43 +908,6 @@ retry:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task ConvertConvertWalletKeyPathRoots()
|
|
||||||
{
|
|
||||||
bool save = false;
|
|
||||||
using var ctx = _DBContextFactory.CreateContext();
|
|
||||||
foreach (var store in await ctx.Stores.AsQueryable().ToArrayAsync())
|
|
||||||
{
|
|
||||||
#pragma warning disable CS0618 // Type or member is obsolete
|
|
||||||
var blob = store.GetStoreBlob();
|
|
||||||
|
|
||||||
if (blob.AdditionalData.TryGetValue("walletKeyPathRoots", out var walletKeyPathRootsJToken))
|
|
||||||
{
|
|
||||||
var walletKeyPathRoots = walletKeyPathRootsJToken.ToObject<Dictionary<string, string>>();
|
|
||||||
|
|
||||||
if (!(walletKeyPathRoots?.Any() is true))
|
|
||||||
continue;
|
|
||||||
var walletKeyPathRoots2 = walletKeyPathRoots.ToDictionary(w => PaymentMethodId.Parse(w.Key), w => w.Value);
|
|
||||||
foreach (var (id, scheme) in store.GetPaymentMethodConfigs<DerivationSchemeSettings>(_handlers))
|
|
||||||
{
|
|
||||||
var handler = (BitcoinLikePaymentHandler)_handlers[id];
|
|
||||||
if (walletKeyPathRoots2.TryGetValue(id,
|
|
||||||
out var root))
|
|
||||||
{
|
|
||||||
scheme.AccountKeyPath = new NBitcoin.KeyPath(root);
|
|
||||||
MigrateDerivationSettings(scheme, handler.Network);
|
|
||||||
store.SetPaymentMethodConfig(_handlers[id], scheme);
|
|
||||||
save = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
blob.AdditionalData.Remove("walletKeyPathRoots");
|
|
||||||
store.SetStoreBlob(blob);
|
|
||||||
}
|
|
||||||
#pragma warning restore CS0618 // Type or member is obsolete
|
|
||||||
}
|
|
||||||
if (save)
|
|
||||||
await ctx.SaveChangesAsync();
|
|
||||||
}
|
|
||||||
void MigrateDerivationSettings(DerivationSchemeSettings s, BTCPayNetwork network)
|
void MigrateDerivationSettings(DerivationSchemeSettings s, BTCPayNetwork network)
|
||||||
{
|
{
|
||||||
if (network == null || s.AccountKeySettings is not (null or { Length: 1 }))
|
if (network == null || s.AccountKeySettings is not (null or { Length: 1 }))
|
||||||
@@ -1004,22 +925,6 @@ retry:
|
|||||||
#pragma warning restore CS0618 // Type or member is obsolete
|
#pragma warning restore CS0618 // Type or member is obsolete
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task ConvertCrowdfundOldSettings()
|
|
||||||
{
|
|
||||||
using var ctx = _DBContextFactory.CreateContext();
|
|
||||||
foreach (var app in await ctx.Apps.Where(a => a.AppType == "Crowdfund").ToArrayAsync())
|
|
||||||
{
|
|
||||||
var settings = app.GetSettings<Services.Apps.CrowdfundSettings>();
|
|
||||||
#pragma warning disable CS0618 // Type or member is obsolete
|
|
||||||
if (settings.UseAllStoreInvoices)
|
|
||||||
#pragma warning restore CS0618 // Type or member is obsolete
|
|
||||||
{
|
|
||||||
app.TagAllInvoices = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
await ctx.SaveChangesAsync();
|
|
||||||
}
|
|
||||||
|
|
||||||
private async Task MigratePaymentMethodCriteria()
|
private async Task MigratePaymentMethodCriteria()
|
||||||
{
|
{
|
||||||
using var ctx = _DBContextFactory.CreateContext();
|
using var ctx = _DBContextFactory.CreateContext();
|
||||||
@@ -1074,53 +979,6 @@ retry:
|
|||||||
await ctx.SaveChangesAsync();
|
await ctx.SaveChangesAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task ConvertNetworkFeeProperty()
|
|
||||||
{
|
|
||||||
using var ctx = _DBContextFactory.CreateContext();
|
|
||||||
foreach (var store in await ctx.Stores.AsQueryable().ToArrayAsync())
|
|
||||||
{
|
|
||||||
var blob = store.GetStoreBlob();
|
|
||||||
if (blob.AdditionalData.TryGetValue("networkFeeDisabled", out var networkFeeModeJToken))
|
|
||||||
{
|
|
||||||
var networkFeeMode = networkFeeModeJToken.ToObject<bool?>();
|
|
||||||
if (networkFeeMode != null)
|
|
||||||
{
|
|
||||||
blob.NetworkFeeMode = networkFeeMode.Value ? NetworkFeeMode.Never : NetworkFeeMode.Always;
|
|
||||||
}
|
|
||||||
|
|
||||||
blob.AdditionalData.Remove("networkFeeDisabled");
|
|
||||||
store.SetStoreBlob(blob);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
await ctx.SaveChangesAsync();
|
|
||||||
}
|
|
||||||
|
|
||||||
private async Task ConvertMultiplierToSpread()
|
|
||||||
{
|
|
||||||
using var ctx = _DBContextFactory.CreateContext();
|
|
||||||
foreach (var store in await ctx.Stores.AsQueryable().ToArrayAsync())
|
|
||||||
{
|
|
||||||
var blob = store.GetStoreBlob();
|
|
||||||
decimal multiplier = 1.0m;
|
|
||||||
if (blob.AdditionalData.TryGetValue("rateRules", out var rateRulesJToken))
|
|
||||||
{
|
|
||||||
var rateRules = new Serializer(null).ToObject<List<RateRule_Obsolete>>(rateRulesJToken.ToString());
|
|
||||||
if (rateRules != null && rateRules.Count != 0)
|
|
||||||
{
|
|
||||||
foreach (var rule in rateRules)
|
|
||||||
{
|
|
||||||
multiplier = rule.Apply(null, multiplier);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
blob.AdditionalData.Remove("rateRules");
|
|
||||||
blob.Spread = Math.Min(1.0m, Math.Max(0m, -(multiplier - 1.0m)));
|
|
||||||
store.SetStoreBlob(blob);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
await ctx.SaveChangesAsync();
|
|
||||||
}
|
|
||||||
|
|
||||||
public class RateRule_Obsolete
|
public class RateRule_Obsolete
|
||||||
{
|
{
|
||||||
public RateRule_Obsolete()
|
public RateRule_Obsolete()
|
||||||
@@ -1136,27 +994,5 @@ retry:
|
|||||||
return rate * (decimal)Multiplier;
|
return rate * (decimal)Multiplier;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task DeprecatedLightningConnectionStringCheck()
|
|
||||||
{
|
|
||||||
await using var ctx = _DBContextFactory.CreateContext();
|
|
||||||
foreach (var store in await ctx.Stores.AsQueryable().ToArrayAsync())
|
|
||||||
{
|
|
||||||
foreach (var (id, method) in store.GetPaymentMethodConfigs<LightningPaymentMethodConfig>(_handlers))
|
|
||||||
{
|
|
||||||
var lightning = method.GetExternalLightningUrl();
|
|
||||||
if (lightning is null)
|
|
||||||
continue;
|
|
||||||
var client = _lightningClientFactoryService.Create(lightning,
|
|
||||||
((IHasNetwork)_handlers[id]).Network);
|
|
||||||
if (client?.ToString() != lightning)
|
|
||||||
{
|
|
||||||
method.SetLightningUrl(client);
|
|
||||||
store.SetPaymentMethodConfig(_handlers[id], method);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
await ctx.SaveChangesAsync();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,8 +40,6 @@ namespace BTCPayServer.Services.Apps
|
|||||||
public bool AnimationsEnabled { get; set; }
|
public bool AnimationsEnabled { get; set; }
|
||||||
public int ResetEveryAmount { get; set; } = 1;
|
public int ResetEveryAmount { get; set; } = 1;
|
||||||
public CrowdfundResetEvery ResetEvery { get; set; } = CrowdfundResetEvery.Never;
|
public CrowdfundResetEvery ResetEvery { get; set; } = CrowdfundResetEvery.Never;
|
||||||
[Obsolete("Use AppData.TagAllInvoices instead")]
|
|
||||||
public bool UseAllStoreInvoices { get; set; }
|
|
||||||
public bool DisplayPerksRanking { get; set; }
|
public bool DisplayPerksRanking { get; set; }
|
||||||
public bool DisplayPerksValue { get; set; }
|
public bool DisplayPerksValue { get; set; }
|
||||||
public bool SortPerksByPopularity { get; set; }
|
public bool SortPerksByPopularity { get; set; }
|
||||||
|
|||||||
@@ -7,12 +7,6 @@ namespace BTCPayServer.Services
|
|||||||
[JsonProperty("MigrateHotwalletProperty2")]
|
[JsonProperty("MigrateHotwalletProperty2")]
|
||||||
public bool MigrateHotwalletProperty { get; set; }
|
public bool MigrateHotwalletProperty { get; set; }
|
||||||
public bool MigrateU2FToFIDO2 { get; set; }
|
public bool MigrateU2FToFIDO2 { get; set; }
|
||||||
public bool DeprecatedLightningConnectionStringCheck { get; set; }
|
|
||||||
public bool ConvertMultiplierToSpread { get; set; }
|
|
||||||
public bool ConvertNetworkFeeProperty { get; set; }
|
|
||||||
public bool ConvertCrowdfundOldSettings { get; set; }
|
|
||||||
public bool ConvertWalletKeyPathRoots { get; set; }
|
|
||||||
public bool CheckedFirstRun { get; set; }
|
|
||||||
public bool PaymentMethodCriteria { get; set; }
|
public bool PaymentMethodCriteria { get; set; }
|
||||||
public bool TransitionToStoreBlobAdditionalData { get; set; }
|
public bool TransitionToStoreBlobAdditionalData { get; set; }
|
||||||
public bool TransitionInternalNodeConnectionString { get; set; }
|
public bool TransitionInternalNodeConnectionString { get; set; }
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ public class ThemeSettings
|
|||||||
|
|
||||||
public string LogoFileId { get; set; }
|
public string LogoFileId { get; set; }
|
||||||
|
|
||||||
public bool FirstRun { get; set; }
|
public bool FirstRun { get; set; } = true;
|
||||||
|
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user