mirror of
https://github.com/zaphar/dbt-nix.git
synced 2025-07-21 19:40:31 -04:00
dbt-postgres and dbt-redshift build
This commit is contained in:
parent
e4e09e2295
commit
c1aa7464d2
15
flake.nix
15
flake.nix
@ -11,21 +11,30 @@
|
||||
outputs = {self, nixpkgs, rust-overlay, flake-utils, ...}:
|
||||
flake-utils.lib.eachDefaultSystem(system:
|
||||
let
|
||||
dbt-overlay = import ./nix/dbt-core/overlay.nix;
|
||||
dbt-overlay = import ./nix/overlay.nix;
|
||||
# TODO(jwall): Is this overlay strictly necessary?
|
||||
pkgs = import nixpkgs {inherit system; overlays = [ dbt-overlay rust-overlay.overlay ]; };
|
||||
dbt-core = import ./nix/dbt-core/default.nix { inherit pkgs; };
|
||||
dbt-postgres = import ./nix/dbt-postgres/default.nix { inherit pkgs dbt-core; };
|
||||
dbt-redshift = import ./nix/dbt-redshift/default.nix { inherit pkgs dbt-core dbt-postgres; };
|
||||
in
|
||||
{
|
||||
dbt-core = dbt-core;
|
||||
dbt-redshift = dbt-redshift;
|
||||
|
||||
overlays = [ dbt-overlay rust-overlay ];
|
||||
defaultPackage = dbt-core;
|
||||
packages.dbt-core = dbt-core;
|
||||
packages = {
|
||||
dbt-core = dbt-core;
|
||||
dbt-redshift = dbt-redshift;
|
||||
};
|
||||
defaultApp = {
|
||||
type = "app";
|
||||
program = "${dbt-core}/bin/dbt";
|
||||
};
|
||||
# Okay now nix develop should work.
|
||||
devShell = pkgs.mkShell {
|
||||
buildInputs = [ dbt-core ];
|
||||
packages = [ dbt-core dbt-redshift dbt-postgres pkgs.python39 pkgs.python39Packages.pip ];
|
||||
};
|
||||
});
|
||||
}
|
@ -2,47 +2,6 @@
|
||||
with pkgs;
|
||||
with python39Packages;
|
||||
let inputs = [
|
||||
#attrs
|
||||
#Babel
|
||||
#boto3
|
||||
#agate
|
||||
#certifi
|
||||
#cffi
|
||||
#click
|
||||
#colorama
|
||||
#hologram
|
||||
#idna
|
||||
#importlib-metadata
|
||||
#isodate
|
||||
#jinja2
|
||||
#leather
|
||||
#Logbook
|
||||
#markupsafe
|
||||
#msgpack
|
||||
#networkx
|
||||
#packaging
|
||||
#parsedatetime
|
||||
#psycopg2
|
||||
#pycparser
|
||||
#pyparsing
|
||||
#pyrsistent
|
||||
#python-dateutil
|
||||
#python-slugify
|
||||
#pytimeparse
|
||||
#pytz
|
||||
#requests
|
||||
#sqlparse
|
||||
#text-unidecode
|
||||
#typing-extensions
|
||||
#urllib3
|
||||
#werkzeug
|
||||
#zipp
|
||||
#pyopenssl
|
||||
#vcversioner
|
||||
#six
|
||||
#snowflake-connector-python
|
||||
#charset-normalizer
|
||||
#dbt-postgres
|
||||
jsonschema
|
||||
networkx
|
||||
mashumaro
|
||||
|
27
nix/dbt-postgres/default.nix
Normal file
27
nix/dbt-postgres/default.nix
Normal file
@ -0,0 +1,27 @@
|
||||
|
||||
{pkgs, dbt-core}:
|
||||
with pkgs;
|
||||
with python39Packages;
|
||||
let inputs = [
|
||||
dbt-core
|
||||
typing-extensions
|
||||
jinja2
|
||||
psycopg2
|
||||
];
|
||||
in
|
||||
buildPythonPackage rec {
|
||||
pname = "dbt-postgres";
|
||||
version = "1.0.0";
|
||||
buildInputs = inputs;
|
||||
propagatedBuildInputs = inputs;
|
||||
doCheck = false;
|
||||
# This is gross but I couldn't figure out how to set an environment variable
|
||||
# to configure this properly.
|
||||
patchPhase = ''
|
||||
sed -ibak "s/return 'psycopg2-binary'/return 'psycopg2'/" setup.py
|
||||
'';
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-eOrEulixIEBx3oTbaaxE3Gg3K2gNo5h5QoJhM48SKZI=";
|
||||
};
|
||||
}
|
23
nix/dbt-redshift/default.nix
Normal file
23
nix/dbt-redshift/default.nix
Normal file
@ -0,0 +1,23 @@
|
||||
{pkgs, dbt-core, dbt-postgres}:
|
||||
with pkgs;
|
||||
with python39Packages;
|
||||
let inputs = [
|
||||
dbt-core
|
||||
boto3
|
||||
typing-extensions
|
||||
jinja2
|
||||
dbt-postgres
|
||||
#jinja2_3
|
||||
];
|
||||
in
|
||||
buildPythonPackage rec {
|
||||
pname = "dbt-redshift";
|
||||
version = "1.0.0";
|
||||
buildInputs = inputs;
|
||||
propagatedBuildInputs = inputs;
|
||||
doCheck = false;
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-ZBkhKxxUA1jyubMkCPzmvqyTh8QPgQ2Y33gEOV6Sc78=";
|
||||
};
|
||||
}
|
@ -118,6 +118,22 @@
|
||||
sha256 = "sha256-ptWEM94K6AA0fKsfowQ867q+i6qdKeZo8cdoy4ejM8Y=";
|
||||
};
|
||||
});
|
||||
psycopg2 = pysuper.psycopg2.overrideAttrs (oldAttrs: rec {
|
||||
pname = "psycopg2";
|
||||
version = "2.8";
|
||||
src = pyself.fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-ScWDjZDoMheQnbN4nTChBThbXmluxRaM2mRVRsVC81o=";
|
||||
};
|
||||
});
|
||||
#jinja2_3 = pysuper.jinja2.overrideAttrs (oldAttrs: rec {
|
||||
# version = "3.0.0";
|
||||
# pname = oldAttrs.pname;
|
||||
# src = pyself.fetchPypi {
|
||||
# inherit pname version;
|
||||
# sha256 = "sha256-6o192BTOnfbeanYex/HKyYr+MFuM3Eqq5OEUuNjOJMU=";
|
||||
# };
|
||||
#});
|
||||
logbook = with pyself; buildPythonPackage rec {
|
||||
pname = "Logbook";
|
||||
version = "1.5.3";
|
||||
@ -130,10 +146,10 @@
|
||||
};
|
||||
typing-extensions = with pyself; buildPythonPackage rec {
|
||||
pname = "typing_extensions";
|
||||
version = "3.7.4.3";
|
||||
version = "3.10.0.2";
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-mdQHO2F9MCiPVp0/E9K9dUjDp+TI3ofbCanSm7Okpgw=";
|
||||
sha256 = "sha256-SfddFv8R8c0ljhuYjM/4KjylVwIX162MX0ggXdmaZ34=";
|
||||
};
|
||||
};
|
||||
python-dateutil = pysuper.python-dateutil.overrideAttrs (oldAttrs: rec {
|
||||
@ -173,23 +189,6 @@
|
||||
# license = licenses.isc;
|
||||
# };
|
||||
#};
|
||||
#vcversioner = pyself.buildPythonPackage rec {
|
||||
# version = "2.16.0.0";
|
||||
# pname = "vcversioner";
|
||||
# src = pyself.fetchPypi {
|
||||
# inherit pname version;
|
||||
# sha256 = "sha256-2uYMF6R5eB9EpAEHAYM/GCkUCx7szSWHYqdJdKoG4Zs=";
|
||||
# };
|
||||
#};
|
||||
#snowflake-connector-python = pysuper.snowflake-connector-python.overrideAttrs (oldAttrs: rec {
|
||||
# version = "2.4.1";
|
||||
# pname = oldAttrs.pname;
|
||||
# src = pyself.fetchPypi {
|
||||
# inherit pname;
|
||||
# inherit version;
|
||||
# sha256 = "1bms4z3zjxzzg0m9smgf0h5cm49h8a41c8w3vyqvx9q22bk814aw";
|
||||
# };
|
||||
#});
|
||||
});
|
||||
};
|
||||
})
|
24
shell.nix
24
shell.nix
@ -1,24 +0,0 @@
|
||||
with import <nixpkgs> {};
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "pip-env";
|
||||
buildInputs = [
|
||||
# System requirements.
|
||||
readline
|
||||
git
|
||||
|
||||
# Python requirements (enough to get a virtualenv going).
|
||||
python39Full
|
||||
python39Packages.virtualenv
|
||||
python39Packages.pip
|
||||
python39Packages.setuptools
|
||||
];
|
||||
src = null;
|
||||
shellHook = ''
|
||||
# Allow the use of wheels.
|
||||
SOURCE_DATE_EPOCH=$(date +%s)
|
||||
|
||||
# Augment the dynamic linker path
|
||||
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${R}/lib/R/lib:${readline}/lib
|
||||
'';
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user