如果不存在文件路径,则sqlite
Rails.application.routes.draw do resources :contenders resources :users devise_for :admin_users, ActiveAdmin::Devise.config ActiveAdmin.routes(self) # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html resources :posts do resources :contenders end root "posts#index" end
标识符是默认标识符。指定:memory:
,别无其他:sqlite://
但是,我可以使用三个斜杠而不只是两个(# in-memory database
e = create_engine('sqlite://')
)吗?或者我可以使用sqlite:///
本身(:memory:
)吗?这样我就可以在配置文件中定义所有引擎属性,并执行以下操作:
sqlite:///:memory:
而不是:
url = f'{dialect}+{driver}://{username}:{password}@{host}:{port}/{path}'
但我可以做到
答案 0 :(得分:5)
虽然这不是我问的问题的直接答案(XY问题?),但我找到了一个"正确的"处理从configs创建URL字符串的方法。似乎SQLAlchemy已经有一个专用于此的内置函数,符合sqlalchemy.engine.url.URL
:
from sqlalchemy import create_engine
from sqlalchemy.engine.url import URL
configs = {
'drivername': 'sqlite',
'username': '',
'password': '',
'host': '',
'port': '',
'database': ':memory:',
'query': '',
}
engine = create_engine(URL(**configs))