Add migration to include payment network with addresses.

[?]
Jun 6, 2020, 4:44 AM
AWWC6P5ZVFDQHX3EAYDG4DKTUZ6A5LHQAV3NIUO3VP6FM7JKPK5AC

Dependencies

  • [2] EFSXYZPO Autoformat everything with brittany.
  • [3] 73NDXDEZ Begin implementation of billing event persistence.
  • [4] IPG33FAW Add billing daemon
  • [5] GMYPBCWE Make docker-compose work.
  • [6] HMDM3B55 Implement core of payments/billing infrastructure.
  • [7] B6HWAPDP Modularize & update to recent haskoin.
  • [8] LEINLS3X Update deployment documentation.
  • [9] SOIAMXLW Build versioned docker images.
  • [*] ADMKQQGC Initial empty Snap project.
  • [*] PGZJ736C Update aftok.cfg.example and revise INSTALL instructions
  • [*] VV6ESCEV Update .gitignore for client libs.
  • [*] IZEVQF62 Work in progress replacing sqlite with postgres.
  • [*] 2WOOGXDH Use dbmigrations to manage database state.

Change contents

  • edit in .gitignore at line 6
    [12.33]
    [12.33]
    dist-newstyle
  • edit in .gitignore at line 23
    [13.14]
    [13.14]
    docker/fix-attrs.d
  • replacement in Makefile at line 8
    [3.334][3.1345:1383]()
    docker build -t aftok/aftok:latest .
    [3.334]
    [3.375]
    docker build -t aftok/aftok-server:latest .
  • replacement in Makefile at line 11
    [3.402][3.1384:1484]()
    docker tag aftok/aftok:latest aftok/aftok:$(VERSION)
    docker push docker.io/aftok/aftok:$(VERSION)
    [3.402]
    [3.1310]
    docker tag aftok/aftok-server:latest aftok/aftok-server:$(VERSION)
    docker push docker.io/aftok/aftok-server:$(VERSION)
  • replacement in Makefile at line 15
    [3.1515][3.1515:1594]()
    docker run --net=host -it -v $(PWD)/local/conf/:/etc/aftok aftok/aftok:latest
    [3.1515]
    docker run --net=host -it -v $(PWD)/local/conf/:/etc/aftok aftok/aftok-server:latest
  • edit in docker-compose.yml at line 41
    [3.24502]
    [3.24502]
    ports:
    - "5432:5432"
  • edit in lib/Aftok/Database/PostgreSQL.hs at line 31
    [2.14316]
    [2.14316]
    import qualified Data.Text as T
  • replacement in lib/Aftok/Database/PostgreSQL.hs at line 108
    [3.7935][3.7935:7981]()
    addrMay <- stringToAddr n <$> fromField f v
    [3.7935]
    [2.15891]
    fieldValue <- fromField f v
    let addrMay = stringToAddr n fieldValue
  • replacement in lib/Aftok/Database/PostgreSQL.hs at line 112
    [2.15958][2.15958:16035]()
    "could not deserialize value to a valid BTC address"
    [2.15958]
    [3.2131]
    ("could not deserialize value " <> T.unpack fieldValue <> " to a valid BTC address")
  • replacement in lib/Aftok/Database/PostgreSQL.hs at line 374
    [3.10964][3.10964:11057]()
    credit_to_type, credit_to_address, credit_to_user_id, credit_to_project_id,
    [3.10964]
    [3.11057]
    credit_to_type,
    credit_to_network, credit_to_address, credit_to_user_id, credit_to_project_id,
  • replacement in lib/Aftok/Database/PostgreSQL.hs at line 385
    [2.19889][2.19889:19984]()
    [sql| SELECT credit_to_type, credit_to_address, credit_to_user_id, credit_to_project_id,
    [2.19889]
    [3.11362]
    [sql| SELECT credit_to_type,
    credit_to_network, credit_to_address, credit_to_user_id, credit_to_project_id,
  • replacement in lib/Aftok/Database/PostgreSQL.hs at line 394
    [2.20071][2.20071:20166]()
    [sql| SELECT credit_to_type, credit_to_address, credit_to_user_id, credit_to_project_id,
    [2.20071]
    [3.11624]
    [sql| SELECT credit_to_type,
    credit_to_network, credit_to_address, credit_to_user_id, credit_to_project_id,
  • replacement in lib/Aftok/Database/PostgreSQL.hs at line 403
    [2.20263][2.20263:20358]()
    [sql| SELECT credit_to_type, credit_to_address, credit_to_user_id, credit_to_project_id,
    [2.20263]
    [3.11913]
    [sql| SELECT credit_to_type,
    credit_to_network, credit_to_address, credit_to_user_id, credit_to_project_id,
  • replacement in lib/Aftok/Database/PostgreSQL.hs at line 459
    [2.21320][3.13154:13247](),[3.13154][3.13154:13247]()
    [sql| SELECT credit_to_type, credit_to_address, credit_to_user_id, credit_to_project_id,
    [2.21320]
    [3.13247]
    [sql| SELECT credit_to_type,
    credit_to_network, credit_to_address, credit_to_user_id, credit_to_project_id,
  • replacement in lib/Aftok/Database/PostgreSQL.hs at line 511
    [2.22347][3.14080:14139](),[3.14080][3.14080:14139]()
    [sql| INSERT INTO users (handle, network, addr, email)
    [2.22347]
    [3.14139]
    [sql| INSERT INTO users (handle, default_payment_network, default_payment_addr, email)
  • replacement in lib/Aftok/Database/PostgreSQL.hs at line 523
    [3.14320][3.18341:18409](),[2.22465][3.18341:18409](),[3.18341][3.18341:18409]()
    [sql| SELECT handle, btc_addr, email FROM users WHERE id = ? |]
    [2.22465]
    [3.9648]
    [sql| SELECT handle, default_payment_network, default_payment_addr, email FROM users WHERE id = ? |]
  • replacement in lib/Aftok/Database/PostgreSQL.hs at line 530
    [3.14455][3.18473:18549](),[2.22537][3.18473:18549](),[3.18473][3.18473:18549]()
    [sql| SELECT id, handle, btc_addr, email FROM users WHERE handle = ? |]
    [2.22537]
    [3.9812]
    [sql| SELECT id, handle, default_payment_network, default_payment_addr, email FROM users WHERE handle = ? |]
  • file addition: 2020-06-06_03-53-54_add-payment-networks.txt (----------)
    [15.1]
    Description: (Describe migration here.)
    Created: 2020-06-06 03:54:56.188542 UTC
    Depends: 2016-10-13_05-36-55_user-event-log
    Apply: |
    ALTER TABLE users ADD COLUMN default_payment_network text NOT NULL DEFAULT 'btc';
    ALTER TABLE users RENAME COLUMN btc_addr TO default_payment_addr;
    ALTER TABLE work_events ADD COLUMN credit_to_network text;
    UPDATE work_events SET credit_to_network = 'btc'
    WHERE credit_to_address IS NOT NULL;
    Revert: |
    ALTER TABLE work_events DROP COLUMN credit_to_network;
    ALTER TABLE users RENAME COLUMN default_payment_addr TO btc_addr;
    ALTER TABLE users DROP COLUMN default_payment_network;