Код: Выделить всё
HBSPT_COMPANIESКод: Выделить всё
snowflakeПри тестировании мое обычное соединение MySQL заменяется простым соединением sqlite в памяти, я использую признак RefreshDatabase для запуска миграции для соединений MySQL, но у меня есть Snowflake_testing.sqlite , который должен использоваться вместо соединения «снежинка» с некоторыми данными тестирования.
Моя проблема заключается в том, что при попытке получить данные в моих тестах я получаю:
Код: Выделить всё
SQLSTATE[HY000]: General error: 1 no such table: HBSPT_COMPANIES (Connection: snowflake_testing, SQL: select * from "HBSPT_COMPANIES" where "name" = TEST_STUDENT)Код: Выделить всё
...
APP_ENV=testing
DB_CONNECTION=sqlite
DB_DATABASE=:memory:
SNOWFLAKE_DB_CONNECTION=snowflake_testing
SNOWFLAKE_DB_DATABASE=/path/to/file/database/snowflake_testing.sqlite
...
Код: Выделить всё
'snowflake_testing' => [
'driver' => 'sqlite',
'database' => env('SNOWFLAKE_DB_DATABASE'),
'prefix' => '',
'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
],
Код: Выделить всё
use Tests\TestCase;
class ReportPolicyTest extends TestCase
{
use RefreshDatabase;
#[Test]
public function it_allows_a_student_to_see_the_student_report(): void
{
$activeSchool = HubspotCompany::query()
->where('name', 'TEST_STUDENT')->get();
Код: Выделить всё
class HubspotCompany extends Model
{
use HasFactory;
.
.
.
protected $primaryKey = 'HS_OBJECT_ID';
public $incrementing = false;
protected $table = 'HBSPT_COMPANIES';
public function __construct(array $attributes = array())
{
parent::__construct($attributes);
$connection = config('app.env') !== 'testing' ? 'snowflake' : 'snowflake_testing';
$this->setConnection($connection);
}
Очевидно, я пытался проверить, что мой Snowflake_testing.sqlite действительно содержит таблицу и некоторые данные, используя этот запрос:
Код: Выделить всё
select *
from HBSPT_COMPANIES
where "name" = "TEST_STUDENT" limit 1
[img]https:// i.sstatic.net/jt11TsiF.png[/img]
Я пробовал поиграться с именованием и подключением, но кажется, что с этим уже все в порядке.
Подробнее здесь: https://stackoverflow.com/questions/785 ... connection
Мобильная версия