mirror of
https://github.com/btcpayserver/btcpayserver.git
synced 2024-11-19 01:43:50 +01:00
Consolidate migrations from alpha (#6244)
This commit is contained in:
parent
f00a71922f
commit
747dacf3b1
@ -22,9 +22,5 @@
|
|||||||
<None Remove="DBScripts\002.RefactorPayouts.sql" />
|
<None Remove="DBScripts\002.RefactorPayouts.sql" />
|
||||||
<None Remove="DBScripts\003.RefactorPendingInvoicesPayments.sql" />
|
<None Remove="DBScripts\003.RefactorPendingInvoicesPayments.sql" />
|
||||||
<None Remove="DBScripts\004.MonitoredInvoices.sql" />
|
<None Remove="DBScripts\004.MonitoredInvoices.sql" />
|
||||||
<None Remove="DBScripts\005.PaymentsRenaming.sql" />
|
|
||||||
<None Remove="DBScripts\006.PaymentsRenaming.sql" />
|
|
||||||
<None Remove="DBScripts\007.PaymentsRenaming.sql" />
|
|
||||||
<None Remove="DBScripts\008.PaymentsRenaming.sql" />
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
@ -4,19 +4,20 @@ RETURNS JSONB AS $$
|
|||||||
$$ LANGUAGE sql IMMUTABLE;
|
$$ LANGUAGE sql IMMUTABLE;
|
||||||
|
|
||||||
|
|
||||||
CREATE OR REPLACE FUNCTION get_monitored_invoices(payment_method_id TEXT)
|
CREATE OR REPLACE FUNCTION get_monitored_invoices(arg_payment_method_id TEXT, include_non_activated BOOLEAN)
|
||||||
RETURNS TABLE (invoice_id TEXT, payment_id TEXT) AS $$
|
RETURNS TABLE (invoice_id TEXT, payment_id TEXT, payment_method_id TEXT) AS $$
|
||||||
WITH cte AS (
|
WITH cte AS (
|
||||||
-- Get all the invoices which are pending. Even if no payments.
|
-- Get all the invoices which are pending. Even if no payments.
|
||||||
SELECT i."Id" invoice_id, p."Id" payment_id FROM "Invoices" i LEFT JOIN "Payments" p ON i."Id" = p."InvoiceDataId"
|
SELECT i."Id" invoice_id, p."Id" payment_id, p."PaymentMethodId" payment_method_id FROM "Invoices" i LEFT JOIN "Payments" p ON i."Id" = p."InvoiceDataId"
|
||||||
WHERE is_pending(i."Status")
|
WHERE is_pending(i."Status")
|
||||||
UNION ALL
|
UNION ALL
|
||||||
-- For invoices not pending, take all of those which have pending payments
|
-- For invoices not pending, take all of those which have pending payments
|
||||||
SELECT i."Id", p."Id" FROM "Invoices" i INNER JOIN "Payments" p ON i."Id" = p."InvoiceDataId"
|
SELECT i."Id" invoice_id, p."Id" payment_id, p."PaymentMethodId" payment_method_id FROM "Invoices" i INNER JOIN "Payments" p ON i."Id" = p."InvoiceDataId"
|
||||||
WHERE is_pending(p."Status") AND NOT is_pending(i."Status"))
|
WHERE is_pending(p."Status") AND NOT is_pending(i."Status"))
|
||||||
SELECT cte.* FROM cte
|
SELECT cte.* FROM cte
|
||||||
LEFT JOIN "Payments" p ON cte.payment_id=p."Id"
|
JOIN "Invoices" i ON cte.invoice_id=i."Id"
|
||||||
LEFT JOIN "Invoices" i ON cte.invoice_id=i."Id"
|
LEFT JOIN "Payments" p ON cte.payment_id=p."Id" AND cte.payment_method_id=p."PaymentMethodId"
|
||||||
WHERE (p."Type" IS NOT NULL AND p."Type" = payment_method_id) OR
|
WHERE (p."PaymentMethodId" IS NOT NULL AND p."PaymentMethodId" = arg_payment_method_id) OR
|
||||||
(p."Type" IS NULL AND get_prompt(i."Blob2", payment_method_id) IS NOT NULL AND (get_prompt(i."Blob2", payment_method_id)->'activated')::BOOLEAN IS NOT FALSE);
|
(p."PaymentMethodId" IS NULL AND get_prompt(i."Blob2", arg_payment_method_id) IS NOT NULL AND
|
||||||
|
(include_non_activated IS TRUE OR (get_prompt(i."Blob2", arg_payment_method_id)->'inactive')::BOOLEAN IS NOT TRUE));
|
||||||
$$ LANGUAGE SQL STABLE;
|
$$ LANGUAGE SQL STABLE;
|
||||||
|
@ -1,17 +0,0 @@
|
|||||||
DROP FUNCTION get_monitored_invoices;
|
|
||||||
CREATE OR REPLACE FUNCTION get_monitored_invoices(payment_method_id TEXT)
|
|
||||||
RETURNS TABLE (invoice_id TEXT, payment_id TEXT, payment_method_id TEXT) AS $$
|
|
||||||
WITH cte AS (
|
|
||||||
-- Get all the invoices which are pending. Even if no payments.
|
|
||||||
SELECT i."Id" invoice_id, p."Id" payment_id, p."PaymentMethodId" payment_method_id FROM "Invoices" i LEFT JOIN "Payments" p ON i."Id" = p."InvoiceDataId"
|
|
||||||
WHERE is_pending(i."Status")
|
|
||||||
UNION ALL
|
|
||||||
-- For invoices not pending, take all of those which have pending payments
|
|
||||||
SELECT i."Id", p."Id", p."PaymentMethodId" payment_method_id FROM "Invoices" i INNER JOIN "Payments" p ON i."Id" = p."InvoiceDataId"
|
|
||||||
WHERE is_pending(p."Status") AND NOT is_pending(i."Status"))
|
|
||||||
SELECT cte.* FROM cte
|
|
||||||
LEFT JOIN "Payments" p ON cte.payment_id=p."Id" AND cte.payment_id=p."PaymentMethodId"
|
|
||||||
LEFT JOIN "Invoices" i ON cte.invoice_id=i."Id"
|
|
||||||
WHERE (p."PaymentMethodId" IS NOT NULL AND p."PaymentMethodId" = payment_method_id) OR
|
|
||||||
(p."PaymentMethodId" IS NULL AND get_prompt(i."Blob2", payment_method_id) IS NOT NULL AND (get_prompt(i."Blob2", payment_method_id)->'activated')::BOOLEAN IS NOT FALSE);
|
|
||||||
$$ LANGUAGE SQL STABLE;
|
|
@ -1,18 +0,0 @@
|
|||||||
DROP FUNCTION get_monitored_invoices;
|
|
||||||
CREATE OR REPLACE FUNCTION get_monitored_invoices(payment_method_id TEXT, include_non_activated BOOLEAN)
|
|
||||||
RETURNS TABLE (invoice_id TEXT, payment_id TEXT, payment_method_id TEXT) AS $$
|
|
||||||
WITH cte AS (
|
|
||||||
-- Get all the invoices which are pending. Even if no payments.
|
|
||||||
SELECT i."Id" invoice_id, p."Id" payment_id, p."PaymentMethodId" payment_method_id FROM "Invoices" i LEFT JOIN "Payments" p ON i."Id" = p."InvoiceDataId"
|
|
||||||
WHERE is_pending(i."Status")
|
|
||||||
UNION ALL
|
|
||||||
-- For invoices not pending, take all of those which have pending payments
|
|
||||||
SELECT i."Id", p."Id", p."PaymentMethodId" payment_method_id FROM "Invoices" i INNER JOIN "Payments" p ON i."Id" = p."InvoiceDataId"
|
|
||||||
WHERE is_pending(p."Status") AND NOT is_pending(i."Status"))
|
|
||||||
SELECT cte.* FROM cte
|
|
||||||
LEFT JOIN "Payments" p ON cte.payment_id=p."Id" AND cte.payment_id=p."PaymentMethodId"
|
|
||||||
LEFT JOIN "Invoices" i ON cte.invoice_id=i."Id"
|
|
||||||
WHERE (p."PaymentMethodId" IS NOT NULL AND p."PaymentMethodId" = payment_method_id) OR
|
|
||||||
(p."PaymentMethodId" IS NULL AND get_prompt(i."Blob2", payment_method_id) IS NOT NULL AND
|
|
||||||
(include_non_activated IS TRUE OR (get_prompt(i."Blob2", payment_method_id)->'activated')::BOOLEAN IS NOT FALSE));
|
|
||||||
$$ LANGUAGE SQL STABLE;
|
|
@ -1,18 +0,0 @@
|
|||||||
DROP FUNCTION get_monitored_invoices;
|
|
||||||
CREATE OR REPLACE FUNCTION get_monitored_invoices(arg_payment_method_id TEXT, include_non_activated BOOLEAN)
|
|
||||||
RETURNS TABLE (invoice_id TEXT, payment_id TEXT, payment_method_id TEXT) AS $$
|
|
||||||
WITH cte AS (
|
|
||||||
-- Get all the invoices which are pending. Even if no payments.
|
|
||||||
SELECT i."Id" invoice_id, p."Id" payment_id, p."PaymentMethodId" payment_method_id FROM "Invoices" i LEFT JOIN "Payments" p ON i."Id" = p."InvoiceDataId"
|
|
||||||
WHERE is_pending(i."Status")
|
|
||||||
UNION ALL
|
|
||||||
-- For invoices not pending, take all of those which have pending payments
|
|
||||||
SELECT i."Id", p."Id", p."PaymentMethodId" payment_method_id FROM "Invoices" i INNER JOIN "Payments" p ON i."Id" = p."InvoiceDataId"
|
|
||||||
WHERE is_pending(p."Status") AND NOT is_pending(i."Status"))
|
|
||||||
SELECT cte.* FROM cte
|
|
||||||
LEFT JOIN "Payments" p ON cte.payment_id=p."Id" AND cte.payment_id=p."PaymentMethodId"
|
|
||||||
LEFT JOIN "Invoices" i ON cte.invoice_id=i."Id"
|
|
||||||
WHERE (p."PaymentMethodId" IS NOT NULL AND p."PaymentMethodId" = arg_payment_method_id) OR
|
|
||||||
(p."PaymentMethodId" IS NULL AND get_prompt(i."Blob2", arg_payment_method_id) IS NOT NULL AND
|
|
||||||
(include_non_activated IS TRUE OR (get_prompt(i."Blob2", arg_payment_method_id)->'activated')::BOOLEAN IS NOT FALSE));
|
|
||||||
$$ LANGUAGE SQL STABLE;
|
|
@ -1,18 +0,0 @@
|
|||||||
DROP FUNCTION get_monitored_invoices;
|
|
||||||
CREATE OR REPLACE FUNCTION get_monitored_invoices(arg_payment_method_id TEXT, include_non_activated BOOLEAN)
|
|
||||||
RETURNS TABLE (invoice_id TEXT, payment_id TEXT, payment_method_id TEXT) AS $$
|
|
||||||
WITH cte AS (
|
|
||||||
-- Get all the invoices which are pending. Even if no payments.
|
|
||||||
SELECT i."Id" invoice_id, p."Id" payment_id, p."PaymentMethodId" payment_method_id FROM "Invoices" i LEFT JOIN "Payments" p ON i."Id" = p."InvoiceDataId"
|
|
||||||
WHERE is_pending(i."Status")
|
|
||||||
UNION ALL
|
|
||||||
-- For invoices not pending, take all of those which have pending payments
|
|
||||||
SELECT i."Id" invoice_id, p."Id" payment_id, p."PaymentMethodId" payment_method_id FROM "Invoices" i INNER JOIN "Payments" p ON i."Id" = p."InvoiceDataId"
|
|
||||||
WHERE is_pending(p."Status") AND NOT is_pending(i."Status"))
|
|
||||||
SELECT cte.* FROM cte
|
|
||||||
JOIN "Invoices" i ON cte.invoice_id=i."Id"
|
|
||||||
LEFT JOIN "Payments" p ON cte.payment_id=p."Id" AND cte.payment_method_id=p."PaymentMethodId"
|
|
||||||
WHERE (p."PaymentMethodId" IS NOT NULL AND p."PaymentMethodId" = arg_payment_method_id) OR
|
|
||||||
(p."PaymentMethodId" IS NULL AND get_prompt(i."Blob2", arg_payment_method_id) IS NOT NULL AND
|
|
||||||
(include_non_activated IS TRUE OR (get_prompt(i."Blob2", arg_payment_method_id)->'inactive')::BOOLEAN IS NOT TRUE));
|
|
||||||
$$ LANGUAGE SQL STABLE;
|
|
@ -11,5 +11,30 @@ namespace BTCPayServer.Migrations
|
|||||||
[DBScript("002.RefactorPayouts.sql")]
|
[DBScript("002.RefactorPayouts.sql")]
|
||||||
public partial class migratepayouts : DBScriptsMigration
|
public partial class migratepayouts : DBScriptsMigration
|
||||||
{
|
{
|
||||||
|
protected override void Up(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
base.Up(migrationBuilder);
|
||||||
|
migrationBuilder.RenameColumn(
|
||||||
|
name: "Destination",
|
||||||
|
table: "Payouts",
|
||||||
|
newName: "DedupId");
|
||||||
|
migrationBuilder.RenameIndex(
|
||||||
|
name: "IX_Payouts_Destination_State",
|
||||||
|
table: "Payouts",
|
||||||
|
newName: "IX_Payouts_DedupId_State");
|
||||||
|
migrationBuilder.RenameColumn(
|
||||||
|
name: "PaymentMethod",
|
||||||
|
table: "PayoutProcessors",
|
||||||
|
newName: "PayoutMethodId");
|
||||||
|
|
||||||
|
migrationBuilder.Sql("""
|
||||||
|
UPDATE "PayoutProcessors"
|
||||||
|
SET
|
||||||
|
"PayoutMethodId" = CASE WHEN STRPOS("PayoutMethodId", '_') = 0 THEN "PayoutMethodId" || '-CHAIN'
|
||||||
|
WHEN STRPOS("PayoutMethodId", '_LightningLike') = 0 THEN "PayoutMethodId" || '-LN'
|
||||||
|
WHEN STRPOS("PayoutMethodId", '_LNURLPAY') = 0 THEN "PayoutMethodId" || '-LN'
|
||||||
|
ELSE "PayoutMethodId" END;
|
||||||
|
""");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,45 +0,0 @@
|
|||||||
using BTCPayServer.Data;
|
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
|
|
||||||
#nullable disable
|
|
||||||
|
|
||||||
namespace BTCPayServer.Migrations
|
|
||||||
{
|
|
||||||
[DbContext(typeof(ApplicationDbContext))]
|
|
||||||
[Migration("20240906010127_renamecol")]
|
|
||||||
public partial class renamecol : Migration
|
|
||||||
{
|
|
||||||
/// <inheritdoc />
|
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.RenameColumn(
|
|
||||||
name: "Destination",
|
|
||||||
table: "Payouts",
|
|
||||||
newName: "DedupId");
|
|
||||||
|
|
||||||
migrationBuilder.RenameIndex(
|
|
||||||
name: "IX_Payouts_Destination_State",
|
|
||||||
table: "Payouts",
|
|
||||||
newName: "IX_Payouts_DedupId_State");
|
|
||||||
migrationBuilder.RenameColumn(
|
|
||||||
name: "PaymentMethod",
|
|
||||||
table: "PayoutProcessors",
|
|
||||||
newName: "PayoutMethodId");
|
|
||||||
|
|
||||||
migrationBuilder.Sql("""
|
|
||||||
UPDATE "PayoutProcessors"
|
|
||||||
SET
|
|
||||||
"PayoutMethodId" = CASE WHEN STRPOS("PayoutMethodId", '_') = 0 THEN "PayoutMethodId" || '-CHAIN'
|
|
||||||
WHEN STRPOS("PayoutMethodId", '_LightningLike') = 0 THEN "PayoutMethodId" || '-LN'
|
|
||||||
WHEN STRPOS("PayoutMethodId", '_LNURLPAY') = 0 THEN "PayoutMethodId" || '-LN'
|
|
||||||
ELSE "PayoutMethodId" END;
|
|
||||||
""");
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <inheritdoc />
|
|
||||||
protected override void Down(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -9,7 +9,6 @@ namespace BTCPayServer.Migrations
|
|||||||
|
|
||||||
[DbContext(typeof(ApplicationDbContext))]
|
[DbContext(typeof(ApplicationDbContext))]
|
||||||
[Migration("20240923065254_refactorpayments")]
|
[Migration("20240923065254_refactorpayments")]
|
||||||
[DBScript("005.PaymentsRenaming.sql")]
|
|
||||||
public partial class refactorpayments : DBScriptsMigration
|
public partial class refactorpayments : DBScriptsMigration
|
||||||
{
|
{
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
|
@ -1,31 +0,0 @@
|
|||||||
using BTCPayServer.Data;
|
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
|
|
||||||
#nullable disable
|
|
||||||
|
|
||||||
namespace BTCPayServer.Migrations
|
|
||||||
{
|
|
||||||
[DbContext(typeof(ApplicationDbContext))]
|
|
||||||
[Migration("20240923071444_temprefactor2")]
|
|
||||||
public partial class temprefactor2 : Migration
|
|
||||||
{
|
|
||||||
/// <inheritdoc />
|
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.DropPrimaryKey(
|
|
||||||
name: "PK_AddressInvoices",
|
|
||||||
table: "AddressInvoices");
|
|
||||||
|
|
||||||
migrationBuilder.AddPrimaryKey(
|
|
||||||
name: "PK_AddressInvoices",
|
|
||||||
table: "AddressInvoices",
|
|
||||||
columns: new[] { "Address", "PaymentMethodId" });
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <inheritdoc />
|
|
||||||
protected override void Down(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -7,7 +7,7 @@ using Microsoft.EntityFrameworkCore.Migrations;
|
|||||||
namespace BTCPayServer.Migrations
|
namespace BTCPayServer.Migrations
|
||||||
{
|
{
|
||||||
[DbContext(typeof(ApplicationDbContext))]
|
[DbContext(typeof(ApplicationDbContext))]
|
||||||
[Migration("20240919034505_monitoredinvoices")]
|
[Migration("20240924065254_monitoredinvoices")]
|
||||||
[DBScript("004.MonitoredInvoices.sql")]
|
[DBScript("004.MonitoredInvoices.sql")]
|
||||||
public partial class monitoredinvoices : DBScriptsMigration
|
public partial class monitoredinvoices : DBScriptsMigration
|
||||||
{
|
{
|
@ -1,15 +0,0 @@
|
|||||||
using BTCPayServer.Data;
|
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
|
|
||||||
#nullable disable
|
|
||||||
|
|
||||||
namespace BTCPayServer.Migrations
|
|
||||||
{
|
|
||||||
[DbContext(typeof(ApplicationDbContext))]
|
|
||||||
[Migration("20240924071444_temprefactor3")]
|
|
||||||
[DBScript("006.PaymentsRenaming.sql")]
|
|
||||||
public partial class temprefactor3 : DBScriptsMigration
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
using BTCPayServer.Data;
|
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
|
|
||||||
#nullable disable
|
|
||||||
|
|
||||||
namespace BTCPayServer.Migrations
|
|
||||||
{
|
|
||||||
[DbContext(typeof(ApplicationDbContext))]
|
|
||||||
[Migration("20240924071444_temprefactor4")]
|
|
||||||
[DBScript("007.PaymentsRenaming.sql")]
|
|
||||||
public partial class temprefactor4 : DBScriptsMigration
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
using BTCPayServer.Data;
|
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
|
|
||||||
#nullable disable
|
|
||||||
|
|
||||||
namespace BTCPayServer.Migrations
|
|
||||||
{
|
|
||||||
[DbContext(typeof(ApplicationDbContext))]
|
|
||||||
[Migration("20240924081444_temprefactor5")]
|
|
||||||
[DBScript("008.PaymentsRenaming.sql")]
|
|
||||||
public partial class temprefactor5 : DBScriptsMigration
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
@ -16,7 +16,7 @@ namespace BTCPayServer.Tests
|
|||||||
public static class TestUtils
|
public static class TestUtils
|
||||||
{
|
{
|
||||||
#if DEBUG && !SHORT_TIMEOUT
|
#if DEBUG && !SHORT_TIMEOUT
|
||||||
public const int TestTimeout = 20_000;
|
public const int TestTimeout = 600_000;
|
||||||
#else
|
#else
|
||||||
public const int TestTimeout = 90_000;
|
public const int TestTimeout = 90_000;
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user