Title: Cannot use SQLite as the SQL registry · Issue #5565 · feast-dev/feast · GitHub
Open Graph Title: Cannot use SQLite as the SQL registry · Issue #5565 · feast-dev/feast
X Title: Cannot use SQLite as the SQL registry · Issue #5565 · feast-dev/feast
Description: Expected Behavior feature_store.yaml with SQLite as sql registry works. project: my_project # By default, the registry is a file (but can be turned into a more scalable SQL-backed registry) # registry: data/registry.db # <--- works with ...
Open Graph Description: Expected Behavior feature_store.yaml with SQLite as sql registry works. project: my_project # By default, the registry is a file (but can be turned into a more scalable SQL-backed registry) # regis...
X Description: Expected Behavior feature_store.yaml with SQLite as sql registry works. project: my_project # By default, the registry is a file (but can be turned into a more scalable SQL-backed registry) # regis...
Opengraph URL: https://github.com/feast-dev/feast/issues/5565
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Cannot use SQLite as the SQL registry","articleBody":"## Expected Behavior \n\nfeature_store.yaml with SQLite as sql registry works.\n```\nproject: my_project\n# By default, the registry is a file (but can be turned into a more scalable SQL-backed registry)\n# registry: data/registry.db # \u003c--- works with file registry but not with sqlite as sql registry.\nregistry:\n registry_type: sql\n path: sqlite:///data/registry.db\n# The provider primarily specifies default offline / online stores \u0026 storing the registry in a given cloud\nprovider: local\noffline_store:\n type: file\nonline_store:\n type: sqlite\n path: data/online_store.db\nentity_key_serialization_version: 3\n# By default, no_auth for authentication and authorization, other possible values kubernetes and oidc. Refer the documentation for more details.\nauth:\n type: no_auth\n```\n\n\n## Current Behavior\n\n```\nfeature_store = FeatureStore(repo_path=\".\")\n...\nOperationalError: (sqlite3.OperationalError) database is locked\n[SQL: INSERT INTO feast_metadata (project_id, metadata_key, metadata_value, last_updated_timestamp) VALUES (?, ?, ?, ?)]\n[parameters: ('my_project', 'last_updated_timestamp', '1754965241', 1754965241)]\n(Background on this error at: https://sqlalche.me/e/20/e3q8)\n```\n\n## Steps to reproduce\n\nCreate a project/repository structure.\n```\nmy_project/feature_repo\n├── data\n│ └── driver_stats.parquet\n├── example_repo.py\n└── feature_store.yaml\n```\n\nRun.\n```\nfeature_store = FeatureStore(repo_path=\".\")\n```\n\nexample_repo.py:\n```\n# This is an example feature definition file\n\nfrom datetime import timedelta\n\nfrom feast import (\n Entity,\n FeatureService,\n FeatureView,\n Field,\n FileSource,\n Project,\n)\nfrom feast.feature_logging import LoggingConfig\nfrom feast.infra.offline_stores.file_source import FileLoggingDestination\nfrom feast.types import Float32, Int64\n\nproject = Project(name=\"my_project\", description=\"A project for driver statistics\")\n\ndriver_hourly_stats = FileSource(\n name=\"driver_hourly_stats_source\",\n path=\"data/driver_stats.parquet\",\n timestamp_field=\"event_timestamp\",\n created_timestamp_column=\"created\",\n)\n\n# You can think of an entity as a primary key used to fetch features.\ndriver = Entity(name=\"driver\", join_keys=[\"driver_id\"])\n\ndriver_hourly_stats_view = FeatureView(\n name=\"driver_hourly_stats\",\n entities=[driver],\n ttl=timedelta(days=1),\n # The list of features defined below act as a schema to both define features\n # for both materialization of features into a store, and are used as references\n # during retrieval for building a training dataset or serving features\n schema=[\n Field(name=\"conv_rate\", dtype=Float32),\n Field(name=\"acc_rate\", dtype=Float32),\n Field(name=\"avg_daily_trips\", dtype=Int64, description=\"Average daily trips\"),\n ],\n # Tell FEAST to materialise into online store.\n online=True,\n source=driver_hourly_stats, # \u003c--- Link to the raw data storage technology\n tags={\"team\": \"driver_performance\"},\n)\n\n# This groups features into a model version\ndriver_activity_v1 = FeatureService(\n name=\"driver_activity_v1\",\n features=[\n # driver_hourly_stats_view[[\"conv_rate\", \"acc_rate\"]], # Sub-selects a feature from a feature view\n driver_hourly_stats_view,\n ],\n logging_config=LoggingConfig(\n destination=FileLoggingDestination(path=\"data\")\n ),\n)\n\n```\n\n### Specifications\n\n- Version:\n```\nimport feast\nfeast.__version__\n\n'0.51.0'\n```\n- Platform: MacOS M2 (15.5 (24F74))\n- Subsystem: Python 3.11\n\n## Possible Solution\n","author":{"url":"https://github.com/oonisim","@type":"Person","name":"oonisim"},"datePublished":"2025-08-12T02:32:30.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":8},"url":"https://github.com/5565/feast/issues/5565"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:17066d57-df7d-067b-c1df-c61e97e3792c |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | CAE8:1EAA85:5A28B2:79497F:696E78CB |
| html-safe-nonce | cb22755854be915a2b640f4dfddfa7d34aea7f312da3fb99b36e37b59d68f29b |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDQUU4OjFFQUE4NTo1QTI4QjI6Nzk0OTdGOjY5NkU3OENCIiwidmlzaXRvcl9pZCI6IjIwNDQyODgxNzQxOTUxMTIxMzkiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | f2bac3313452d2dc632cf216b100a5a8247a8ec9635eedf1f7f489f8e8dff85e |
| hovercard-subject-tag | issue:3312290206 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/feast-dev/feast/5565/issue_layout |
| twitter:image | https://opengraph.githubassets.com/58d96eecd1ed532de2a38849cd936e9450abe4c96375e2d4933e2f0230f90cc7/feast-dev/feast/issues/5565 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/58d96eecd1ed532de2a38849cd936e9450abe4c96375e2d4933e2f0230f90cc7/feast-dev/feast/issues/5565 |
| og:image:alt | Expected Behavior feature_store.yaml with SQLite as sql registry works. project: my_project # By default, the registry is a file (but can be turned into a more scalable SQL-backed registry) # regis... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | oonisim |
| hostname | github.com |
| expected-hostname | github.com |
| None | fdad15fd2ad43212aa8b8be5f2c2725550f8374ceeeb154a999ad9145b43f3f7 |
| turbo-cache-control | no-preview |
| go-import | github.com/feast-dev/feast git https://github.com/feast-dev/feast.git |
| octolytics-dimension-user_id | 57027613 |
| octolytics-dimension-user_login | feast-dev |
| octolytics-dimension-repository_id | 161133770 |
| octolytics-dimension-repository_nwo | feast-dev/feast |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 161133770 |
| octolytics-dimension-repository_network_root_nwo | feast-dev/feast |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 27b23bc056eb973d350fc95afc848757edb9e7a9 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width