Skip to content

Shopify Daisy(Database Integration System) is a system for continuously replicating data from Shopify to the databases.

License

Notifications You must be signed in to change notification settings

dataopstix/shopify-daisy

Repository files navigation

Shopify Daisy

Shopify Daisy(Database Integration System) is a system for continuously replicating data from Shopify to the databases.

Tech Stack

Getting started

1. Clone and install dependencies

Clone the entire repo

Clone this repository:

git clone git@github.com:datadlog/shopify-daisy.git --depth=1

Install npm dependencies:

cd shopify-daisy
npm install

2. Create and seed the database

Run the following command to create your SQLite database file. This also create the Customer table that are defined in prisma/schema.prisma:

npx prisma migrate dev --name init

Now, seed the database with the sample data in prisma/seed.ts by running the following command:

npx prisma db seed

3. Start the GraphQL server

Launch your GraphQL server with this command:

npm run dev

Navigate to http://localhost:4000 in your browser to explore the API of your GraphQL server in a GraphQL Playground.

Using the GraphQL API

The schema that specifies the API operations of your GraphQL server is defined in ./schema.graphql. Below are a number of operations that you can send to the API using the GraphQL Playground.

Feel free to adjust any operation by adding or removing fields. The GraphQL Playground helps you with its auto-completion and query validation features.

Retrieve all published posts and their authors

query {
  allCustomers {
    email
    first_name
    last_name
    state
  }
}

Create a new user

mutation {
  createCustomer(data: { first_name: "Naveen", email: "naveen@datadlog.com" }) {
    id
  }
}

Switch to another database (e.g. PostgreSQL, MySQL, SQL Server, MongoDB)

If you want to try this example with another database than SQLite, you can adjust the the database connection in prisma/schema.prisma by reconfiguring the datasource block.

Learn more about the different connection configurations in the docs.

Expand for an overview of example configurations with different databases

PostgreSQL

For PostgreSQL, the connection URL has the following structure:

datasource db {
  provider = "postgresql"
  url      = "postgresql://USER:PASSWORD@HOST:PORT/DATABASE?schema=SCHEMA"
}

Here is an example connection string with a local PostgreSQL database:

datasource db {
  provider = "postgresql"
  url      = "postgresql://janedoe:mypassword@localhost:5432/notesapi?schema=public"
}

MySQL

For MySQL, the connection URL has the following structure:

datasource db {
  provider = "mysql"
  url      = "mysql://USER:PASSWORD@HOST:PORT/DATABASE"
}

Here is an example connection string with a local MySQL database:

datasource db {
  provider = "mysql"
  url      = "mysql://janedoe:mypassword@localhost:3306/notesapi"
}

Microsoft SQL Server

Here is an example connection string with a local Microsoft SQL Server database:

datasource db {
  provider = "sqlserver"
  url      = "sqlserver://localhost:1433;initial catalog=sample;user=sa;password=mypassword;"
}

MongoDB

Here is an example connection string with a local MongoDB database:

datasource db {
  provider = "mongodb"
  url      = "mongodb://USERNAME:PASSWORD@HOST/DATABASE?authSource=admin&retryWrites=true&w=majority"
}

Because MongoDB is currently in Preview, you need to specify the previewFeatures on your generator block:

generator client {
  provider        = "prisma-client-js"
  previewFeatures = ["mongodb"]
}

About

Shopify Daisy(Database Integration System) is a system for continuously replicating data from Shopify to the databases.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published