{"id":15780382,"url":"https://github.com/rgl/postgres-entity-framework-core-example","last_synced_at":"2026-05-05T09:33:07.511Z","repository":{"id":58770293,"uuid":"533434956","full_name":"rgl/postgres-entity-framework-core-example","owner":"rgl","description":"This shows how to use PostgreSQL from an C# Entity Framework Core project","archived":false,"fork":false,"pushed_at":"2022-09-07T10:29:22.000Z","size":2065,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-12-31T11:06:10.368Z","etag":null,"topics":["csharp","docker","docker-compose","entity-framework-core","postgre","postgresql"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rgl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-09-06T17:35:51.000Z","updated_at":"2022-09-06T17:37:19.000Z","dependencies_parsed_at":"2023-01-17T22:45:49.465Z","dependency_job_id":null,"html_url":"https://github.com/rgl/postgres-entity-framework-core-example","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rgl/postgres-entity-framework-core-example","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgl%2Fpostgres-entity-framework-core-example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgl%2Fpostgres-entity-framework-core-example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgl%2Fpostgres-entity-framework-core-example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgl%2Fpostgres-entity-framework-core-example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rgl","download_url":"https://codeload.github.com/rgl/postgres-entity-framework-core-example/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgl%2Fpostgres-entity-framework-core-example/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32643713,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-04T10:08:07.713Z","status":"online","status_checked_at":"2026-05-05T02:00:06.033Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["csharp","docker","docker-compose","entity-framework-core","postgre","postgresql"],"created_at":"2024-10-04T18:41:25.339Z","updated_at":"2026-05-05T09:33:07.482Z","avatar_url":"https://github.com/rgl.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# About\n\n[![Build status](https://github.com/rgl/postgres-entity-framework-core-example/workflows/build/badge.svg)](https://github.com/rgl/postgres-entity-framework-core-example/actions?query=workflow%3Abuild)\n\nThis shows how to use PostgreSQL from an C# Entity Framework Core project.\n\n# Usage\n\nInstall docker and docker compose.\n\nRun the whole shebang:\n\n```bash\n./run.sh\n```\n\nPoke the database:\n\n```bash\ndocker compose exec --user postgres postgres psql startrek\n```\n```sql\n-- list roles.\n\\dg\n-- list databases.\n\\l\n-- list relations.\n\\d\n-- list relations access privileges.\n\\dp\n-- list default access privileges.\n\\ddp\n```\n\nYou should see something alike:\n\n```plain\nstartrek=# -- list roles.\nstartrek=# \\dg\n                                          List of roles\n    Role name    |                         Attributes                         |     Member of     \n-----------------+------------------------------------------------------------+-------------------\n example         |                                                            | {startrek_reader}\n postgres        | Superuser, Create role, Create DB, Replication, Bypass RLS | {}\n startrek_owner  |                                                            | {}\n startrek_reader | Cannot login                                               | {}\n\nstartrek=# -- list databases.\nstartrek=# \\l\n                                    List of databases\n   Name    |  Owner   | Encoding |  Collate   |   Ctype    |      Access privileges      \n-----------+----------+----------+------------+------------+-----------------------------\n postgres  | postgres | UTF8     | en_US.utf8 | en_US.utf8 | \n startrek  | postgres | UTF8     | en_US.utf8 | en_US.utf8 | postgres=CTc/postgres      +\n           |          |          |            |            | startrek_owner=CTc/postgres+\n           |          |          |            |            | startrek_reader=c/postgres\n template0 | postgres | UTF8     | en_US.utf8 | en_US.utf8 | =c/postgres                +\n           |          |          |            |            | postgres=CTc/postgres\n template1 | postgres | UTF8     | en_US.utf8 | en_US.utf8 | =c/postgres                +\n           |          |          |            |            | postgres=CTc/postgres\n(4 rows)\n\nstartrek=# -- list relations.\nstartrek=# \\d\n                     List of relations\n Schema |         Name          |   Type   |     Owner      \n--------+-----------------------+----------+----------------\n public | CharacterPhoto        | table    | startrek_owner\n public | CharacterPhoto_Id_seq | sequence | startrek_owner\n public | Characters            | table    | startrek_owner\n public | Characters_Id_seq     | sequence | startrek_owner\n public | Series                | table    | startrek_owner\n public | Series_Id_seq         | sequence | startrek_owner\n public | __EFMigrationsHistory | table    | startrek_owner\n(7 rows)\n\nstartrek=# -- list access privileges.\nstartrek=# \\dp\n                                                Access privileges\n Schema |         Name          |   Type   |           Access privileges           | Column privileges | Policies \n--------+-----------------------+----------+---------------------------------------+-------------------+----------\n public | CharacterPhoto        | table    | startrek_owner=arwdDxt/startrek_owner+|                   | \n        |                       |          | startrek_reader=r/startrek_owner      |                   | \n public | CharacterPhoto_Id_seq | sequence | startrek_owner=rwU/startrek_owner    +|                   | \n        |                       |          | startrek_reader=r/startrek_owner      |                   | \n public | Characters            | table    | startrek_owner=arwdDxt/startrek_owner+|                   | \n        |                       |          | startrek_reader=r/startrek_owner      |                   | \n public | Characters_Id_seq     | sequence | startrek_owner=rwU/startrek_owner    +|                   | \n        |                       |          | startrek_reader=r/startrek_owner      |                   | \n public | Series                | table    | startrek_owner=arwdDxt/startrek_owner+|                   | \n        |                       |          | startrek_reader=r/startrek_owner      |                   | \n public | Series_Id_seq         | sequence | startrek_owner=rwU/startrek_owner    +|                   | \n        |                       |          | startrek_reader=r/startrek_owner      |                   | \n public | __EFMigrationsHistory | table    | startrek_owner=arwdDxt/startrek_owner+|                   | \n        |                       |          | startrek_reader=r/startrek_owner      |                   | \n(7 rows)\n\nstartrek=# -- list default access privileges.\nstartrek=# \\ddp\n                       Default access privileges\n     Owner      | Schema |   Type   |        Access privileges         \n----------------+--------+----------+----------------------------------\n startrek_owner | public | function | startrek_reader=X/startrek_owner\n startrek_owner | public | sequence | startrek_reader=r/startrek_owner\n startrek_owner | public | table    | startrek_reader=r/startrek_owner\n(3 rows)\n```\n\nDestroy everything:\n\n```bash\ndocker compose down --volumes --remove-orphans --timeout=0\n```\n\n# References\n\n* [Schemas](https://www.postgresql.org/docs/14/ddl-schemas.html)\n* [Database Roles](https://www.postgresql.org/docs/14/user-manag.html)\n* [Role Membership](https://www.postgresql.org/docs/14/role-membership.html)\n* [Privileges](https://www.postgresql.org/docs/14/ddl-priv.html)\n* [ALTER DEFAULT PRIVILEGES](https://www.postgresql.org/docs/14/sql-alterdefaultprivileges.html)\n* [GRANT](https://www.postgresql.org/docs/14/sql-grant.html)\n* [REVOKE](https://www.postgresql.org/docs/14/sql-revoke.html)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frgl%2Fpostgres-entity-framework-core-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frgl%2Fpostgres-entity-framework-core-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frgl%2Fpostgres-entity-framework-core-example/lists"}