{"id":21826398,"url":"https://github.com/dataopstix/shopify-daisy","last_synced_at":"2025-03-21T11:48:39.699Z","repository":{"id":46002133,"uuid":"430041229","full_name":"dataopstix/shopify-daisy","owner":"dataopstix","description":"Shopify Daisy(Database Integration System) is a system for continuously replicating data from Shopify to the databases.","archived":false,"fork":false,"pushed_at":"2021-11-21T16:27:53.000Z","size":48,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-01-26T08:15:21.436Z","etag":null,"topics":["shopify","shopify-app"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dataopstix.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-11-20T07:46:10.000Z","updated_at":"2023-09-11T20:13:45.000Z","dependencies_parsed_at":"2022-07-20T06:32:52.231Z","dependency_job_id":null,"html_url":"https://github.com/dataopstix/shopify-daisy","commit_stats":null,"previous_names":["dataopstix/shopify-daisy"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dataopstix%2Fshopify-daisy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dataopstix%2Fshopify-daisy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dataopstix%2Fshopify-daisy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dataopstix%2Fshopify-daisy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dataopstix","download_url":"https://codeload.github.com/dataopstix/shopify-daisy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244795430,"owners_count":20511519,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["shopify","shopify-app"],"created_at":"2024-11-27T18:03:54.579Z","updated_at":"2025-03-21T11:48:39.646Z","avatar_url":"https://github.com/dataopstix.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Shopify Daisy\n\nShopify Daisy(Database Integration System) is a system for continuously replicating data from Shopify to the databases.\n\n# Tech Stack\n\n- [**Apollo Server**](https://github.com/apollographql/apollo-server): HTTP server for GraphQL APIs   \n- [**GraphQL Nexus**](https://nexusjs.org/docs/): GraphQL schema definition and resolver implementation \n- [**Prisma Client**](https://www.prisma.io/docs/concepts/components/prisma-client): Databases access (ORM)                  \n- [**Prisma Migrate**](https://www.prisma.io/docs/concepts/components/prisma-migrate): Database migrations               \n- [**SQLite**](https://www.sqlite.org/index.html): Local, file-based SQL database\n\n\n## Getting started\n\n### 1. Clone and install dependencies\n\n\u003cdetails\u003e\u003csummary\u003eClone the entire repo\u003c/summary\u003e\n\nClone this repository:\n\n```\ngit clone git@github.com:datadlog/shopify-daisy.git --depth=1\n```\n\nInstall npm dependencies:\n\n```\ncd shopify-daisy\nnpm install\n```\n\n\u003c/details\u003e\n\n### 2. Create and seed the database\n\nRun the following command to create your SQLite database file. This also create the `Customer` table that are defined in [`prisma/schema.prisma`](./prisma/schema.prisma):\n\n```\nnpx prisma migrate dev --name init\n```\n\nNow, seed the database with the sample data in [`prisma/seed.ts`](./prisma/seed.ts) by running the following command:\n\n```\nnpx prisma db seed\n```\n\n\n### 3. Start the GraphQL server\n\nLaunch your GraphQL server with this command:\n\n```\nnpm run dev\n```\n\nNavigate to [http://localhost:4000](http://localhost:4000) in your browser to explore the API of your GraphQL server in a [GraphQL Playground](https://github.com/prisma/graphql-playground).\n\n\n## Using the GraphQL API\n\nThe schema that specifies the API operations of your GraphQL server is defined in [`./schema.graphql`](./schema.graphql). Below are a number of operations that you can send to the API using the GraphQL Playground.\n\nFeel free to adjust any operation by adding or removing fields. The GraphQL Playground helps you with its auto-completion and query validation features.\n\n### Retrieve all published posts and their authors\n\n```graphql\nquery {\n  allCustomers {\n    email\n    first_name\n    last_name\n    state\n  }\n}\n```\n\n\n### Create a new user\n\n```graphql\nmutation {\n  createCustomer(data: { first_name: \"Naveen\", email: \"naveen@datadlog.com\" }) {\n    id\n  }\n}\n```\n\n## Switch to another database (e.g. PostgreSQL, MySQL, SQL Server, MongoDB)\n\nIf you want to try this example with another database than SQLite, you can adjust the the database connection in [`prisma/schema.prisma`](./prisma/schema.prisma) by reconfiguring the `datasource` block. \n\nLearn more about the different connection configurations in the [docs](https://www.prisma.io/docs/reference/database-reference/connection-urls).\n\n\u003cdetails\u003e\u003csummary\u003eExpand for an overview of example configurations with different databases\u003c/summary\u003e\n\n### PostgreSQL\n\nFor PostgreSQL, the connection URL has the following structure:\n\n```prisma\ndatasource db {\n  provider = \"postgresql\"\n  url      = \"postgresql://USER:PASSWORD@HOST:PORT/DATABASE?schema=SCHEMA\"\n}\n```\n\nHere is an example connection string with a local PostgreSQL database:\n\n```prisma\ndatasource db {\n  provider = \"postgresql\"\n  url      = \"postgresql://janedoe:mypassword@localhost:5432/notesapi?schema=public\"\n}\n```\n\n### MySQL\n\nFor MySQL, the connection URL has the following structure:\n\n```prisma\ndatasource db {\n  provider = \"mysql\"\n  url      = \"mysql://USER:PASSWORD@HOST:PORT/DATABASE\"\n}\n```\n\nHere is an example connection string with a local MySQL database:\n\n```prisma\ndatasource db {\n  provider = \"mysql\"\n  url      = \"mysql://janedoe:mypassword@localhost:3306/notesapi\"\n}\n```\n\n### Microsoft SQL Server\n\nHere is an example connection string with a local Microsoft SQL Server database:\n\n```prisma\ndatasource db {\n  provider = \"sqlserver\"\n  url      = \"sqlserver://localhost:1433;initial catalog=sample;user=sa;password=mypassword;\"\n}\n```\n\n### MongoDB\n\nHere is an example connection string with a local MongoDB database:\n\n```prisma\ndatasource db {\n  provider = \"mongodb\"\n  url      = \"mongodb://USERNAME:PASSWORD@HOST/DATABASE?authSource=admin\u0026retryWrites=true\u0026w=majority\"\n}\n```\nBecause MongoDB is currently in [Preview](https://www.prisma.io/docs/about/releases#preview), you need to specify the `previewFeatures` on your `generator` block:\n\n```\ngenerator client {\n  provider        = \"prisma-client-js\"\n  previewFeatures = [\"mongodb\"]\n}\n```\n\u003c/details\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdataopstix%2Fshopify-daisy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdataopstix%2Fshopify-daisy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdataopstix%2Fshopify-daisy/lists"}