2017-09-18 5 views
0

Web2pyデータベースに新しいレコードを追加しようとすると、このエラーが発生します。リポジトリを別のマシンから移動しましたが、同じ Web2pyエラー "<class 'sqlite3.OperationalError'>このようなテーブルがありません:application

私の以前のデータベースDAL接続パラメータ

は以下の通りです:。

from gluon.contrib.appconfig import AppConfig 
myconf = AppConfig(reload=True) 
if not request.env.web2py_runtime_gae: 
    db = DAL('sqlite://storage.sqlite', pool_size=1, check_reserved=['all'], migrate=False, fake_migrate_all=True) 
else: 
    db = DAL('google:datastore+ndb') 
:私は公式ドキュメントに従うことによって、この中にそれを変更して

from gluon.contrib.appconfig import AppConfig 
myconf = AppConfig(reload=True) 
if not request.env.web2py_runtime_gae: 
    db = DAL(myconf.get('db.'+myconf.get('db.mode')+'_uri'), 
       pool_size=myconf.get('db.pool_size'), 
       migrate=myconf.get('db.migrate'), 
       migrate_enabled=myconf.get('db.migrate_enabled'), 
       #fake_migrate_all=myconf.get('db.fake_migrate_all'), 
       fake_migrate_all=True, 
       check_reserved=['all']) 

else: 
    db = DAL('google:datastore+ndb') 
    session.connect(request, response, db=db) 

それは私user_authが見つからないというエラーを与えていました

それは/ databaseと "Database_Administration"コンソールのすべてのテーブルを表示します。新しいレコードを追加しようとしましたが、私は以下のエラーを受け取ります。

Web2py Error" <class 'sqlite3.OperationalError'> no such table: application 

「アプリケーション」という名前のテーブルがアプリには含まれていないため、アプリに関連する必要があります。お知らせ下さい。

答えて

3

"applications/yourappname/databases"のデータベースフォルダに移動します。すべてのテーブルを削除し、テーブルを再作成します。あなたはどこかからコピーして、すべてのテーブルをロードできなかったはずです。 migrate = Trueおよびfake_migrate_all = falseを設定します。その後、サーバーを再実行し、web2pyサーバーパネルでアプリケーションに移動します。 「編集」を選択し、管理パネルの「モデル」の下の「データベース管理」に移動します。自分のマシンにすべてのテーブルを再作成します。これが他のソースからコピーしたものでない場合は、まだすべてのテーブルを削除して次の操作を行います。あなたは確かにそれを起動し、実行されます。

0

完全に新しいデータベースを作成しましたが、fake_migrate_all=Trueを設定することで、web2pyはすべてのテーブルが作成されていないと思うようになりました。代わりに、最初にmigrate=True(デフォルト)のままにして、fake_migrate_allを設定しないでください。その場合、web2pyは最初のリクエスト時にテーブルを作成します(その後、別の変更が必要になるまで、移行を無効にすることができます)。

関連する問題