diff --git a/docker-compose.yml b/docker-compose.yml index c8900a9d..08a7be99 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -12,10 +12,15 @@ services: image: postgres:9-alpine ports: - 5432:5432 - volumes: - - ./init-db:/docker-entrypoint-initdb.d/ environment: POSTGRES_USER: ap POSTGRES_PASSWORD: fifteen-invoices-imported! POSTGRES_DB: autoap + migrator: + build: ./migrator + depends_on: + - database + environment: + DATABASE_URL: "postgresql://ap:fifteen-invoices-imported!@database/autoap?ssl=false" + diff --git a/migrator/.gitignore b/migrator/.gitignore new file mode 100644 index 00000000..3c3629e6 --- /dev/null +++ b/migrator/.gitignore @@ -0,0 +1 @@ +node_modules diff --git a/migrator/Dockerfile b/migrator/Dockerfile new file mode 100644 index 00000000..3c49524c --- /dev/null +++ b/migrator/Dockerfile @@ -0,0 +1,5 @@ +FROM node:9.3-alpine +COPY . /usr/local +WORKDIR /usr/local +CMD npm run db-migrate + diff --git a/migrator/migrations/1513802821-DOWN-initial.sql b/migrator/migrations/1513802821-DOWN-initial.sql new file mode 100644 index 00000000..439bc11b --- /dev/null +++ b/migrator/migrations/1513802821-DOWN-initial.sql @@ -0,0 +1,3 @@ +-- 1513802821 DOWN initial +drop TABLE invoices ; +drop TABLE users ; diff --git a/init-db/0001.sql b/migrator/migrations/1513802821-UP-initial.sql similarity index 93% rename from init-db/0001.sql rename to migrator/migrations/1513802821-UP-initial.sql index 7d15549d..d2a72443 100644 --- a/init-db/0001.sql +++ b/migrator/migrations/1513802821-UP-initial.sql @@ -1,4 +1,4 @@ +-- 1513802821 UP initial CREATE TABLE invoices (id serial primary key, invoice_number varchar(255), date varchar(255), total varchar(255), customer_identifier varchar(255), imported boolean, status varchar(255), vendor varchar(255), potential_duplicate boolean, company varchar(255)); CREATE TABLE users (id serial primary key, provider varchar(255), provider_id varchar(255), data text); - diff --git a/migrator/migrations/1513802974-DOWN-add-first-user.sql b/migrator/migrations/1513802974-DOWN-add-first-user.sql new file mode 100644 index 00000000..117ecabb --- /dev/null +++ b/migrator/migrations/1513802974-DOWN-add-first-user.sql @@ -0,0 +1,2 @@ +-- 1513802974 DOWN add-first-user +delete from users; diff --git a/init-db/0002.sql b/migrator/migrations/1513802974-UP-add-first-user.sql similarity index 83% rename from init-db/0002.sql rename to migrator/migrations/1513802974-UP-add-first-user.sql index 611158c1..98783a56 100644 --- a/init-db/0002.sql +++ b/migrator/migrations/1513802974-UP-add-first-user.sql @@ -1 +1,2 @@ +-- 1513802974 UP add-first-user insert into users (provider, provider_id, data) values('google', '104596437663417983775', '{:companies ["Brown Chicken Brown Cow" "Campbell Brewing Company"]}'); diff --git a/migrator/package-lock.json b/migrator/package-lock.json new file mode 100644 index 00000000..701386ee --- /dev/null +++ b/migrator/package-lock.json @@ -0,0 +1,132 @@ +{ + "name": "migrator", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "buffer-writer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-1.0.1.tgz", + "integrity": "sha1-Iqk2kB4wKa/NdUfrRIfOtpejvwg=" + }, + "colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=" + }, + "db-migrator": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/db-migrator/-/db-migrator-2.2.0.tgz", + "integrity": "sha512-7A5sSNJwZv0/2dslOOJyccwS7wN99+Xq+ifNXUHEfxlWuVeQ9wGds3s1HYRcmtZl+oV2wq1ZEOXfyPb/GvQpMA==", + "requires": { + "colors": "1.1.2", + "lodash": "4.17.4" + } + }, + "js-string-escape": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", + "integrity": "sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8=" + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + }, + "packet-reader": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-0.3.1.tgz", + "integrity": "sha1-zWLmCvjX/qinBexP+ZCHHEaHHyc=" + }, + "pg": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/pg/-/pg-7.4.0.tgz", + "integrity": "sha1-4lYGHSxScjw8hY3vuX8RWcpmD4M=", + "requires": { + "buffer-writer": "1.0.1", + "js-string-escape": "1.0.1", + "packet-reader": "0.3.1", + "pg-connection-string": "0.1.3", + "pg-pool": "2.0.3", + "pg-types": "1.12.1", + "pgpass": "1.0.2", + "semver": "4.3.2" + } + }, + "pg-connection-string": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-0.1.3.tgz", + "integrity": "sha1-2hhHsglA5C7hSSvq9l1J2RskXfc=" + }, + "pg-pool": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-2.0.3.tgz", + "integrity": "sha1-wCIDLIlJ8xKk+R+2QJzgQHa+Mlc=" + }, + "pg-types": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-1.12.1.tgz", + "integrity": "sha1-1kCH45A7WP+q0nnnWVxSIIoUw9I=", + "requires": { + "postgres-array": "1.0.2", + "postgres-bytea": "1.0.0", + "postgres-date": "1.0.3", + "postgres-interval": "1.1.1" + } + }, + "pgpass": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.2.tgz", + "integrity": "sha1-Knu0G2BltnkH6R2hsHwYR8h3swY=", + "requires": { + "split": "1.0.1" + } + }, + "postgres-array": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-1.0.2.tgz", + "integrity": "sha1-jgsy6wO/d6XAp4UeBEHBaaJWojg=" + }, + "postgres-bytea": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", + "integrity": "sha1-AntTPAqokOJtFy1Hz5zOzFIazTU=" + }, + "postgres-date": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.3.tgz", + "integrity": "sha1-4tiXAu/bJY/52c7g/pG9BpdSV6g=" + }, + "postgres-interval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.1.1.tgz", + "integrity": "sha512-OkuCi9t/3CZmeQreutGgx/OVNv9MKHGIT5jH8KldQ4NLYXkvmT9nDVxEuCENlNwhlGPE374oA/xMqn05G49pHA==", + "requires": { + "xtend": "4.0.1" + } + }, + "semver": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.2.tgz", + "integrity": "sha1-x6BxWKgL7dBSNVt3DYLWZA+AO+c=" + }, + "split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "requires": { + "through": "2.3.8" + } + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + } + } +} diff --git a/migrator/package.json b/migrator/package.json new file mode 100644 index 00000000..f063a973 --- /dev/null +++ b/migrator/package.json @@ -0,0 +1,21 @@ +{ + "name": "migrator", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "Bryce Covert ", + "license": "ISC", + "dependencies": { + "db-migrator": "^2.2.0", + "pg": "^7.4.0" + }, + "scripts": { + "db-migrate": "db-migrate", + "db-rollback": "db-rollback", + "db-create": "db-create", + "db-status": "db-status" + } +} diff --git a/src/clj/auto_ap/db/utils.clj b/src/clj/auto_ap/db/utils.clj index b32c79f0..8bb33d13 100644 --- a/src/clj/auto_ap/db/utils.clj +++ b/src/clj/auto_ap/db/utils.clj @@ -26,9 +26,6 @@ (let [db-host (:server (:db env)) db-port 5432 db-name "autoap"] - (println "envt" env) - (println (:db env)) - {:classname "org.postgresql.Driver" ; must be in classpath #_#_:ssl true #_#_:sslfactory "org.postgresql.ssl.NonValidatingFactory"