🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

Q&A

解決済

1回答

1122閲覧

Cakephpをherokuにデプロイしたのですが、DBの接続がうまくいかないです。

tunnel

総合スコア30

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

0グッド

0クリップ

投稿2019/09/14 07:55

編集2019/09/19 04:27

CakePHP3をHerokuで動かす設定

上記の記事の通りにやりました。
デプロイはうまくいったのですが、別のページに飛ぼうとするとAn Internal Error Has Occurredというエラーが出ます。
下はherokuのログです。調べても解決策がよくわかりません。よろしくお願いいたします。

--
2019-09-18T07:49:07.805270+00:00 app[web.1]: 2019-09-18 16:49:07 Error: [Cake\Database\Exception] SQLSTATE[42S02]: Base table or view not found: 1146 Table 'heroku_3568fb5fcfa8945.users' doesn't exist

--

php

1//config/app_heroku.php 2<?php 3 4use Cake\Cache\Engine\FileEngine; 5use Cake\Database\Connection; 6use Cake\Database\Driver\Mysql; 7use Cake\Error\ExceptionRenderer; 8use Cake\Log\Engine\FileLog; 9use Cake\Mailer\Transport\MailTransport; 10 11$db = parse_url(env('CLEARDB_DATABASE_URL')); 12return [ 13 14 'debug' => false, 15 16 17 'App' => [ 18 'namespace' => 'App', 19 'encoding' => env('APP_ENCODING', 'UTF-8'), 20 'defaultLocale' => env('APP_DEFAULT_LOCALE', 'en_US'), 21 'defaultTimezone' => env('APP_DEFAULT_TIMEZONE', 'UTC'), 22 'base' => false, 23 'dir' => 'src', 24 'webroot' => 'webroot', 25 'wwwRoot' => WWW_ROOT, 26 //'baseUrl' => env('SCRIPT_NAME'), 27 'fullBaseUrl' => false, 28 'imageBaseUrl' => 'img/', 29 'cssBaseUrl' => 'css/', 30 'jsBaseUrl' => 'js/', 31 'paths' => [ 32 'plugins' => [ROOT . DS . 'plugins' . DS], 33 'templates' => [APP . 'Template' . DS], 34 'locales' => [APP . 'Locale' . DS], 35 ], 36 ], 37 38 39 'Security' => [ 40 'salt' => env('SALT'), 41 ], 42 43 'Asset' => [ 44 //'timestamp' => true, 45 // 'cacheTime' => '+1 year' 46 ], 47 48 /** 49 * Configure the cache adapters. 50 */ 51 'Cache' => [ 52 'default' => [ 53 'className' => FileEngine::class, 54 'path' => CACHE, 55 'url' => env('CACHE_DEFAULT_URL', null), 56 ], 57 58 59 '_cake_core_' => [ 60 'className' => FileEngine::class, 61 'prefix' => 'myapp_cake_core_', 62 'path' => CACHE . 'persistent/', 63 'serialize' => true, 64 'duration' => '+1 years', 65 'url' => env('CACHE_CAKECORE_URL', null), 66 ], 67 68 69 '_cake_model_' => [ 70 'className' => FileEngine::class, 71 'prefix' => 'myapp_cake_model_', 72 'path' => CACHE . 'models/', 73 'serialize' => true, 74 'duration' => '+1 years', 75 'url' => env('CACHE_CAKEMODEL_URL', null), 76 ], 77 78 79 '_cake_routes_' => [ 80 'className' => FileEngine::class, 81 'prefix' => 'myapp_cake_routes_', 82 'path' => CACHE, 83 'serialize' => true, 84 'duration' => '+1 years', 85 'url' => env('CACHE_CAKEROUTES_URL', null), 86 ], 87 ], 88 89 90 'Error' => [ 91 'errorLevel' => E_ALL, 92 'exceptionRenderer' => ExceptionRenderer::class, 93 'skipLog' => [], 94 'log' => true, 95 'trace' => true, 96 ], 97 98 99 'EmailTransport' => [ 100 'default' => [ 101 'className' => MailTransport::class, 102 /* 103 * The following keys are used in SMTP transports: 104 */ 105 'host' => 'localhost', 106 'port' => 25, 107 'timeout' => 30, 108 'username' => null, 109 'password' => null, 110 'client' => null, 111 'tls' => null, 112 'url' => env('EMAIL_TRANSPORT_DEFAULT_URL', null), 113 ], 114 ], 115 116 117 'Email' => [ 118 'default' => [ 119 'transport' => 'default', 120 'from' => 'you@localhost', 121 //'charset' => 'utf-8', 122 //'headerCharset' => 'utf-8', 123 ], 124 ], 125 126 127 'Datasources' => [ 128 'default' => [ 129 'className' => 'Cake\Database\Connection', 130 'driver' => 'Cake\Database\Driver\Mysql', 131 'persistent' => false, 132 'host' => $db['host'], 133 'username' => $db['user'], 134 'password' => $db['pass'], 135 'database' => substr($db['path'], 1), 136 'encoding' => 'utf8', 137 'timezone' => 'UTC', 138 'cacheMetadata' => true, 139 'quoteIdentifiers' => false, 140 ], 141 ], 142 143 144 'Log' => [ 145 'debug' => [ 146 'className' => FileLog::class, 147 'path' => LOGS, 148 'file' => 'debug', 149 'url' => env('LOG_DEBUG_URL', null), 150 'scopes' => false, 151 'levels' => ['notice', 'info', 'debug'], 152 ], 153 'error' => [ 154 'className' => FileLog::class, 155 'path' => LOGS, 156 'file' => 'error', 157 'url' => env('LOG_ERROR_URL', null), 158 'scopes' => false, 159 'levels' => ['warning', 'error', 'critical', 'alert', 'emergency'], 160 ], 161 ], 162 163 164 'Session' => [ 165 'defaults' => 'php', 166 ], 167]; 168

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nskydiving

2019/09/14 07:59

エラーログを提示された方が回答がつきやすくなると思います。
tunnel

2019/09/14 08:46

'debug' => falseにしているためエラーログは出ていないと思われます。 これを元どおりにしてしまうと以前解決できなかったプラグインのエラーが出てきてしまいます。 このエラーを解決してエラーログを出すしかないのでしょうか?
nojimage

2019/09/17 01:33

デバッグOFFでもerror.logは出力されるはずです。Herokuはファイルログだと見れないので、参考記事のようにログを標準出力に出力するように設定を変更してから確認してみてください。
tunnel

2019/09/17 07:18

herokuの標準出力のエラーコードらしき箇所を追加しました。よろしくお願いします。
nojimage

2019/09/17 11:53

ログにCakePHPアプリケーションのエラーログが出力されていないようですね。ログの出力先の変更は行いましたか?
nojimage

2019/09/17 11:57

ログを見るに /users/login は表示されるけど、 /users/add を表示しようとするとエラーが表示されるという認識でよいでしょうか。であれば、なおのこと発生しているエラーの内容(ログでもいいし、debugを有効にして画面表示でもいい)を確認できるようにすることが解決の近道となります。
tunnel

2019/09/18 07:58

その認識であっております。よくみたらログにエラーが出ていたので追加します。 よろしくお願い致します。
guest

回答1

0

ベストアンサー

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'heroku_3568fb5fcfa8945.users' doesn't exist

とあるので、データベース上に users テーブルが存在しない状態のようです。

マイグレーションファイルを準備しているのであれば、

sh

1heroku run bash

で、heroku環境に入ってから

sh

1bin/cake migrations migrate

を叩いてテーブルを作成しましょう。

投稿2019/09/19 09:58

nojimage

総合スコア959

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tunnel

2019/09/22 11:36

migrationファイルが乱立していたためかさらなるエラーが出てしまっていたのですが、新しく作ったアプリで、教えていただいた方法でやったらできました!ありがとうございます!^^
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問