2017-12-18 14 views
-2

以下はPythonで作成されたデータベース構成ファイルです。コードを実行していますが、実行時に自動的に作成されるrestaurant.dbファイルがありません。ありがとうpythonでrestaurant.dbファイルを作成できません

import os 
import sys 
from sqlalchemy import Column, ForeignKey, Integer, String 
from sqlalchemy.ext.declarative import declarative_base 
from sqlalchemy.orm import relationship 
from sqlalchemy import create_engine 
Base = declarative_base() 
class Restaurant(Base): 
    __tablename__ = 'restaurant' 
    id = Column(Integer, primary_key=True) 
    name = Column(String(250), nullable=False) 

class MenuItem(Base): 
    __tablename__ = 'menu_item' 
    name = Column(String(80), nullable=False) 
    id = Column(Integer, primary_key=True) 
    description = Column(String(250)) 
    price = Column(String(8)) 
    course = Column(String(250)) 
    restaurant_id = Column(Integer, ForeignKey('restaurant.id')) 
    restaurant = relationship(Restaurant) 
engine = create_engine('sqlite:///restaurantmenu.db') 
Base.metadata.create_all(engine) 
+1

この「sqliteの:// D /restaurantmenu.db」をパス "sqlite:///restaurantmenu.db"は、データベースファイルをファイルシステムのルートフォルダに作成する必要があることを意味します。あなたはそれに書き込みアクセス権を持っていますか?あるいは、 "sqlite:///home/user/restaurantmenu.db"のようなものを書いたかったでしょうか? – MihanEntalpo

+0

Didntはあなたを得る...私をもう一度説明してください.. – hatim

+0

どこにrestaurantmenu.dbファイルを作成しますか?どのフォルダに? "現在の"フォルダに作成する場合は、パスは "sqlite:// {cur_path} /restaurantmenu.db" .format(cur_path = os.path.dirname(os.path.realpath(__ file__))にする必要があります。 ) – MihanEntalpo

答えて

0

データベースファイルが「D」ドライブに配置する必要がある場合は、このように気にいらないために、データベースファイルのパスを設定する必要があります。

+0

さらに、database_setup.py(ピルトンファイル)から別のファイルにインポートしようとすると、次のエラーが表示されます。 'トレースバック(最新の呼び出しの最後): ファイル ""、ライン1、database_setup輸入基地から では、レストラン、MenuItemの ModuleNotFoundError:「という名前のないモジュールはdatabase_setup'' – hatim

+0

あなたの "database_setup.py" ファイルが置かずどこあなたはそれをインポートしているファイルに対して相対的にですか? – MihanEntalpo

関連する問題