From SQL Server to PostgreSQL,
in a wizard.

A1Access Migrator moves an entire SQL Server database to PostgreSQL — schema, data, indexes, foreign keys, and a full inventory of triggers and stored procedures — in four guided phases. Verified on 8.8 million rows.

4
Migration Phases
8.8M
Rows Stress-Tested
720+
Tables in One Run
0
Mismatches Verified

Built for production migrations, not just demos

Smart fallbacks for the cases real databases throw at you, full inventory of what couldn't auto-port, and a verifier you can trust.

📐

Schema-aware DDL conversion

T-SQL types, defaults (SYSUTCDATETIME, NEWID, CONVERT, identity), computed columns, and check constraints all rewritten for PostgreSQL.

Binary COPY data transfer

~10× faster than INSERTs. Foreign-key checks deferred during load; identity sequences reset to MAX(id) after.

🔧

Smart constraint fallback

btree row-size limit hit? Single-column non-unique indexes auto-retry as USING HASH. The rest get a workbook with options.

📋

Triggers & procs inventory

3,000+ T-SQL objects captured into _migration_meta.objects with the original body preserved for manual port.

🗂️

Multi-schema preservation

SQL Server dbo maps to public; other schemas stay namespaced. Duplicate names across schemas are handled correctly.

Row-count verifier

Source COUNT_BIG(*) compared to target COUNT(*) table-by-table. Zero tolerance for silent mismatches.

🪟

Wizard or CLI — your call

WPF wizard for one-off migrations, a1mig CLI for CI/CD. Both share the same engine and config file.

🔒

Local-only data flow

Connections you provide; nothing leaves your network. The DLL is HMAC-watermarked so you can verify integrity at any time.

Four phases. Each one resumable.

The wizard runs them in order; the CLI runs each on demand. Every phase logs its own outcome.

Phase 1

Schema

Drop + create the target database, apply all CREATE TABLEs. No indexes, no FKs yet — keeps the door open for fast bulk copy.

Phase 2

Data

Tables sorted by FK dependency. session_replication_role = replica defers FK checks. COPY ... FROM STDIN (FORMAT BINARY) per table.

Phase 3

Constraints

Indexes, foreign keys, check constraints — with smart hash-fallback for oversized btrees. Anything that can't apply auto goes to a review workbook.

Phase 4

Objects + Verify

Triggers, procs, views, functions captured to _migration_meta.objects. Then row counts compared source vs target.

What you get on the target database

Beyond the migrated schema, a working inventory you can query.

-- See everything that needs a manual port:
SELECT object_type, schema_name, object_name, parent_table, port_status
FROM _migration_meta.unported
ORDER BY object_type, schema_name, object_name;

-- Mark one done after porting:
UPDATE _migration_meta.objects
   SET port_status = 'DONE',
       pg_definition = $$ ... your PL/pgSQL here ... $$
 WHERE schema_name = 'public' AND object_name = 'tr_audit_insert';

Compare to the alternatives

Why pick A1Access Migrator over the usual one-off scripts or generic SaaS tools.

Capability Hand-rolled scripts SaaS migration tool A1Access Migrator
SQL Server → PostgreSQL DDL conversionmanualyesyes
Binary COPY data transfernoyesyes
Smart hash-fallback for oversized indexesnooften missingyes
Trigger / proc / view inventory on targetnousually skipped_migration_meta
Row-count verifiernosometimesyes
Runs offline; data never leaves your networkyesnoyes
Wizard + CLI sharing one enginenoUI onlyyes

Ready to move off SQL Server?

Download the free 30-day trial and migrate up to 1 GB. No credit card.

⬇ Download for Windows

من SQL Server إلى PostgreSQL،
عن طريق ويزارد.

A1Access Migrator ينقل قاعدة بيانات SQL Server كاملة إلى PostgreSQL — schema، بيانات، indexes، foreign keys، وفهرس كامل لكل الـ triggers والـ stored procedures — في 4 مراحل واضحة. مُختبر على 8.8 مليون سجل.

4
مراحل
+8.8 مليون
سجل اختُبر
+720
جدول في تشغيلة واحدة
0
تطابق مفقود

مصمَّم لميجريشن إنتاج، مش demo

fallbacks ذكية للحالات اللي بتقابلك في قواعد البيانات الحقيقية، فهرس كامل لكل اللي ما اتنقلش تلقائياً، ومُحقّق تثق فيه.

📐

تحويل DDL واعٍ بالـ schema

أنواع T-SQL، defaults (SYSUTCDATETIME، NEWID، CONVERT، identity)، الأعمدة المحسوبة، و check constraints كلهم بيتعاد كتابتهم لـ PostgreSQL.

نقل البيانات بـ Binary COPY

أسرع 10× تقريباً من INSERT. الـ FKs مؤجلة وقت التحميل، والـ identity sequences تترجع لـ MAX(id) بعد كده.

🔧

Smart fallback للقيود

btree حجمه فات الحد؟ الـ indexes single-column non-unique بتتحول تلقائياً لـ USING HASH. الباقي بيدخل workbook بخيارات.

📋

فهرس Triggers و Procs

+3,000 object T-SQL بيتحفظوا في _migration_meta.objects مع الكود الأصلي للـ manual port.

🗂️

الحفاظ على الـ schemas

الـ dbo بيتحول لـ public، والباقي بيفضلوا namespace خاص. الأسماء المتكررة في schemas مختلفة بتتعالج صح.

مُحقّق row counts

الـ source COUNT_BIG(*) بيتقارن بـ target COUNT(*) جدول-بجدول. zero-tolerance للمفقودين.

🪟

Wizard أو CLI

WPF wizard للميجريشن لمرة واحدة، و a1mig CLI للـ CI/CD. الاتنين بيستخدموا نفس الـ engine.

🔒

تدفق محلي بالكامل

الاتصالات تحط أنت، مفيش بيانات تطلع من شبكتك. الـ DLL موقّع بـ HMAC، تقدر تتحقق من سلامته في أي وقت.

أربع مراحل. كل واحدة قابلة للاستئناف.

الـ wizard بيشغّلهم بترتيب، والـ CLI تقدر تشغل أي مرحلة لوحدها.

المرحلة 1

الـ Schema

إعادة إنشاء قاعدة الـ target، تطبيق كل CREATE TABLE. بدون indexes أو FKs لسة — عشان التحميل يكون سريع.

المرحلة 2

البيانات

الجداول مرتبة حسب FK. session_replication_role = replica بيؤجل الـ FK checks. COPY ... FORMAT BINARY لكل جدول.

المرحلة 3

القيود

indexes، foreign keys، check constraints — مع hash fallback للـ btrees الكبيرة. اللي ما اتطبّقش بيدخل review workbook.

المرحلة 4

الـ Objects + التحقق

Triggers، procs، views، functions بيتحفظوا في _migration_meta.objects. وبعدها مقارنة row counts بين source و target.

جاهز تخرج من SQL Server؟

نزّل النسخة التجريبية المجانية (30 يوم) وانقل حتى 1 جيجا. بدون بطاقة ائتمان.

⬇ نزّل لـ Windows