Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ 2 lib, 3 runCommand, 4 prisma, 5 prisma-engines, 6 sqlite-interactive, 7}: 8 9let 10 prismaMajorVersion = lib.versions.majorMinor prisma.version; 11 enginesMajorVersion = lib.versions.majorMinor prisma-engines.version; 12in 13runCommand "prisma-cli-tests" 14 { 15 nativeBuildInputs = [ 16 prisma 17 sqlite-interactive 18 ]; 19 meta.timeout = 60; 20 } 21 '' 22 mkdir $out 23 cd $out 24 25 if [ "${prismaMajorVersion}" != "${enginesMajorVersion}" ]; then 26 echo "prisma in version ${prismaMajorVersion} and prisma-engines in ${enginesMajorVersion}. Major versions must match." 27 exit 1 28 fi 29 30 # Ensure CLI runs 31 prisma --help > /dev/null 32 33 # Init a new project 34 prisma init > /dev/null 35 36 # Create a simple data model 37 cat << EOF > prisma/schema.prisma 38 datasource db { 39 provider = "sqlite" 40 url = "file:test.db" 41 } 42 43 generator js { 44 provider = "prisma-client-js" 45 } 46 47 model A { 48 id Int @id @default(autoincrement()) 49 b String @default("foo") 50 } 51 EOF 52 53 # Format 54 prisma format > /dev/null 55 56 # Create the database 57 prisma db push --skip-generate > /dev/null 58 59 # The database file should exist and be a SQLite database 60 sqlite3 prisma/test.db "SELECT id, b FROM A" > /dev/null 61 62 # Introspect the database 63 prisma db pull > /dev/null 64 ''