Демо Flow Lab на открытой учебной базе Chinook (MIT, © Luis Rocha) - не данные клиента. Отчёт, который поймал расхождение

Отчёт сверки переноса

Chinook · SQLite → PostgreSQL 18.3

Проверено 2026-09-25 16:52 (UTC+0800) · за 0,39 с
11Таблиц
15 607Строк
11/11Контрольные суммы
11/11Внешние ключи
2,18 сПеренос

Структура

Данные по таблицам

ТаблицаИсточникPostgreSQLКонтрольная суммаСтатус
Album34734704418092ae4f347 → 347 · 04418092ae4fсовпадает
КолонкаТипПустыхСверка значений
AlbumIdINTEGER → integer0сумма 60378✓
TitleNVARCHAR(160) → varchar(160)07874 символов✓
ArtistIdINTEGER → integer0сумма 42314✓
Artist275275210ce975edcb275 → 275 · 210ce975edcbсовпадает
КолонкаТипПустыхСверка значений
ArtistIdINTEGER → integer0сумма 37950✓
NameNVARCHAR(120) → varchar(120)05658 символов✓
Customer5959f9d7f48e9e9559 → 59 · f9d7f48e9e95совпадает
КолонкаТипПустыхСверка значений
CustomerIdINTEGER → integer0сумма 1770✓
FirstNameNVARCHAR(40) → varchar(40)0340 символов✓
LastNameNVARCHAR(20) → varchar(20)0409 символов✓
CompanyNVARCHAR(80) → varchar(80)49166 символов✓
AddressNVARCHAR(70) → varchar(70)01055 символов✓
CityNVARCHAR(40) → varchar(40)0460 символов✓
StateNVARCHAR(40) → varchar(40)2965 символов✓
CountryNVARCHAR(40) → varchar(40)0375 символов✓
PostalCodeNVARCHAR(10) → varchar(10)4332 символов✓
PhoneNVARCHAR(24) → varchar(24)1973 символов✓
FaxNVARCHAR(24) → varchar(24)47208 символов✓
EmailNVARCHAR(60) → varchar(60)01240 символов✓
SupportRepIdINTEGER → integer0сумма 233✓
Employee887a0a8d424b128 → 8 · 7a0a8d424b12совпадает
КолонкаТипПустыхСверка значений
EmployeeIdINTEGER → integer0сумма 36✓
LastNameNVARCHAR(20) → varchar(20)050 символов✓
FirstNameNVARCHAR(20) → varchar(20)046 символов✓
TitleNVARCHAR(30) → varchar(30)0111 символов✓
ReportsToINTEGER → integer1сумма 20✓
BirthDateDATETIME → timestamp01947-09-19 … 1973-08-29✓
HireDateDATETIME → timestamp02002-04-01 … 2004-03-04✓
AddressNVARCHAR(70) → varchar(70)0130 символов✓
CityNVARCHAR(40) → varchar(40)063 символов✓
StateNVARCHAR(40) → varchar(40)016 символов✓
CountryNVARCHAR(40) → varchar(40)048 символов✓
PostalCodeNVARCHAR(10) → varchar(10)056 символов✓
PhoneNVARCHAR(24) → varchar(24)0135 символов✓
FaxNVARCHAR(24) → varchar(24)0135 символов✓
EmailNVARCHAR(60) → varchar(60)0174 символов✓
Genre252566e027ddd8f225 → 25 · 66e027ddd8f2совпадает
КолонкаТипПустыхСверка значений
GenreIdINTEGER → integer0сумма 325✓
NameNVARCHAR(120) → varchar(120)0224 символов✓
Invoice412412b690d0644c4c412 → 412 · b690d0644c4cсовпадает
КолонкаТипПустыхСверка значений
InvoiceIdINTEGER → integer0сумма 85078✓
CustomerIdINTEGER → integer0сумма 12331✓
InvoiceDateDATETIME → timestamp02009-01-01 … 2013-12-22✓
BillingAddressNVARCHAR(70) → varchar(70)07368 символов✓
BillingCityNVARCHAR(40) → varchar(40)03211 символов✓
BillingStateNVARCHAR(40) → varchar(40)202455 символов✓
BillingCountryNVARCHAR(40) → varchar(40)02620 символов✓
BillingPostalCodeNVARCHAR(10) → varchar(10)282318 символов✓
TotalNUMERIC(10,2) → numeric(10,2)0сумма 2328.60✓
InvoiceLine2 2402 240c5ccb30fb50e2 240 → 2 240 · c5ccb30fb50eсовпадает
КолонкаТипПустыхСверка значений
InvoiceLineIdINTEGER → integer0сумма 2509920✓
InvoiceIdINTEGER → integer0сумма 463386✓
TrackIdINTEGER → integer0сумма 3847725✓
UnitPriceNUMERIC(10,2) → numeric(10,2)0сумма 2328.60✓
QuantityINTEGER → integer0сумма 2240✓
MediaType5544afcd4cd4995 → 5 · 44afcd4cd499совпадает
КолонкаТипПустыхСверка значений
MediaTypeIdINTEGER → integer0сумма 15✓
NameNVARCHAR(120) → varchar(120)0104 символов✓
Playlist1818523d94348c2918 → 18 · 523d94348c29совпадает
КолонкаТипПустыхСверка значений
PlaylistIdINTEGER → integer0сумма 171✓
NameNVARCHAR(120) → varchar(120)0217 символов✓
PlaylistTrack8 7158 71549878b305cd68 715 → 8 715 · 49878b305cd6совпадает
КолонкаТипПустыхСверка значений
PlaylistIdINTEGER → integer0сумма 42852✓
TrackIdINTEGER → integer0сумма 15400117✓
Track3 5033 50325bf4c35f5983 503 → 3 503 · 25bf4c35f598совпадает
КолонкаТипПустыхСверка значений
TrackIdINTEGER → integer0сумма 6137256✓
NameNVARCHAR(200) → varchar(200)055639 символов✓
AlbumIdINTEGER → integer0сумма 493676✓
MediaTypeIdINTEGER → integer0сумма 4233✓
GenreIdINTEGER → integer0сумма 20056✓
ComposerNVARCHAR(220) → varchar(220)97862081 символов✓
MillisecondsINTEGER → integer0сумма 1378778040✓
BytesINTEGER → integer0сумма 117386255350✓
UnitPriceNUMERIC(10,2) → numeric(10,2)0сумма 3680.97✓

Как проверялось

  1. Каждая строка каждой таблицы прочитана в обеих базах в порядке первичного ключа.
  2. Значения приведены к одному виду (числа — с масштабом колонки, даты — до микросекунд, двоичные — в hex), из них посчитана контрольная сумма MD5 таблицы. Совпадение суммы означает совпадение всех значений.
  3. Отдельно по каждой колонке: число пустых значений, сумма чисел, длина текста, диапазон дат — чтобы при расхождении сразу было видно, где оно.
  4. Проверены структура: внешние ключи (PostgreSQL проверил их на всех строках), индексы и счётчики ключей.