Оригинальный репозиторий: samsullivandelgobbo/vPIC-dl
Этот форк создан с целью исправления ошибок и доработки инструкции для корректного запуска на Ubuntu.
Пошаговый план действий для запуска и использования репозитория Angpeu/vPIC-dl на сервере с Ubuntu, если Docker и Python уже установлены:
git clone https://github.com/Angpeu/vPIC-dl.git
cd vPIC-dlsudo apt-get update
sudo apt-get install -y python3 python3-venv python3-pip make curl apt-transport-https unixodbc unixodbc-devsudo ln -s /usr/bin/python3 /usr/bin/pythonили установи python-is-python3 (рекомендуется для Ubuntu 20.04+):
sudo apt install python-is-python3sudo apt install make# Добавляем репозиторий Microsoft
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
echo "deb [arch=amd64] https://packages.microsoft.com/ubuntu/22.04/prod jammy main" | sudo tee /etc/apt/sources.list.d/mssql-release.list
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18 mssql-tools18
odbcinst -q -d -n "ODBC Driver 18 for SQL Server"
export PATH="$PATH:/opt/mssql-tools18/bin"Чтобы путь был постоянным, добавь строку выше в ~/.bashrc:
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
source ~/.bashrcЕсли папки нет — создай её:
mkdir -p temp_data
sudo chown -R $USER:$USER temp_data
chmod u+rwx temp_datachmod +x ./scripts/restore_backup.shpython3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtВажно: Postgre будет запущен на стандартном порту 5432, MS SQL на 1433. Нужно остановить существующие сервисы, которые могут использовать эти порты.
make start-containers(Если нет команды make — установи её: sudo apt install make)
make allЭто скачает свежий дамп базы, восстановит его в MS SQL, мигрирует данные в PostgreSQL и SQLite, и проведёт проверку.
- Данные будут доступны /temp_data/
.venv/bin/python -c "import sqlite3; conn = sqlite3.connect('temp_data/vpic.db'); print(''.join(conn.iterdump()))" > temp_data/vpic_sqlite_dump.sqlНиже список основных команд Makefile, которые можно выполнять по отдельности:
make clean— очистить окружение, удалить контейнеры, виртуальное окружение и временные файлы.make setup— создать виртуальное окружение Python и установить зависимости.make install— установить пакет в режиме разработки (после setup).make start-containers— запустить Docker-контейнеры для MS SQL и PostgreSQL.make download— скачать свежие данные vPIC.make restore— восстановить бэкап в MS SQL и проверить базу.make migrate-pg— миграция данных из MS SQL в PostgreSQL.make migrate-sqlite— миграция данных из MS SQL в SQLite.make verify-pg— проверить корректность миграции (вывести таблицы в обеих базах).make test— запустить тесты.make backup— создать резервную копию базы PostgreSQL: формирует три файла в папке temp_data — дамп только схемы, только данных и полный бинарный дамп. Имя файлов содержит текущую дату и время. Эта команда просто вызывает export-pg.make export-pg— непосредственно выполняет экспорт базы PostgreSQL в temp_data (дамп схемы, дамп данных, полный дамп). Обычно используется внутри backup, но можно вызывать отдельно.
Выполняй нужные этапы по отдельности, если не требуется полный процесс (make all).
docker-compose -f docker/docker-compose.yml down -vA robust tool for downloading, migrating, and managing the NHTSA's Vehicle Product Information Catalog (vPIC) database across different database platforms (SQL Server, PostgreSQL, and SQLite).
This tool facilitates the migration of the NHTSA's vPIC database, which contains comprehensive vehicle specification data, including:
- Vehicle Makes, Models, and Types
- Manufacturer Information
- Vehicle Specifications and Features
- WMI (World Manufacturer Identifier) Data
- VIN Decoder implementation
- 🚀 Automated download of the latest vPIC database backup
- 🔄 Migration support for multiple database platforms:
- Microsoft SQL Server
- PostgreSQL
- SQLite
- ✅ Data integrity verification
- 📊 Progress tracking with detailed logging
- 🔧 Configurable settings and type mappings
- 🐳 Docker support for easy deployment
- Python 3.8 or higher
- Docker and Docker Compose
- Make (optional, but recommended)
- Clone the repository:
git clone https://github.com/samsullivandelgobbo/vPIC-dl.git
cd vpic-migration
- Install dependencies:
./install_deps.sh
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
- Start the containers:
make start-containers
- Run the migration:
make download
make restore
make migrate-pg
make migrate-sqlite
make verify-pg
make backup
or
make all
The simplest way to use the tool is through the provided Makefile commands:
make all
make download
make restore
make migrate-pg
make migrate-sqlite
make verify
make backup
Configuration can be modified through environment variables or by editing vpic_migration/settings.py:
SQL_SERVER = {
"driver": "ODBC Driver 18 for SQL Server",
"server": "localhost",
"database": "vpic",
"user": "SA",
"password": "YourPassword",
"trust_cert": "yes"
}The vPIC database contains numerous tables with vehicle-related information. Key tables include:
- Make: Vehicle manufacturers
- Model: Vehicle models
- VehicleType: Types of vehicles
- WMI: World Manufacturer Identifier information
- And many more...
For complete schema information, see DATA_STRUCTURE.md.