SQL Server · Azure SQL · Postgres · Files

Migrate the database. Prove it moved.

Cygenix maps your schema with AI, forecasts what would fail before anything runs, moves the server-level objects most tools leave behind, and records every gated action in a hash-chained audit trail. It runs in the browser and connects to your databases directly.

Start free trial → See exactly what it supports
Every capability on this page is checked against the product's own support matrix at build time, so what you read here is what ships.
Four things a migration actually needs

Most tools do the first one. The other three are where migrations go wrong, and they are the reason this one exists.

Move it

AI column mapping across engines, with transforms, fixed values and type coercion. Views are first-class sources. What the preview shows is what the runner executes — the same transform engine draws both.

Know before you run it

Preflight samples your real data through your real mapping and forecasts the rows that would be rejected — truncation, type failures, null violations — while it is still cheap to fix them.

Take the whole server

Logins with their hashed passwords and SIDs, Agent jobs, SSIS projects, linked servers. Cygenix reads your target's engine edition first and tells you what will not fit before it tries.

Prove what happened

Ten roles with a real permission matrix, separation of duties, change guardrails enforced on the server, and a hash-chained audit trail that reports a break rather than hiding it.

Drag a column across. Or let the model draw it.

The mapper is a canvas: source columns on the left, target columns on the right, and you join them by dragging one onto the other. The model proposes the joins first and shows the confidence it actually had — not a number invented to look reassuring — so the work is checking suggestions rather than typing four hundred column names.

  • One transform engine. A CAST to a shorter character type truncates in the preview exactly as SQL Server truncates it on the way in — so a job cannot pass preview and then fail on string-would-be-truncated.
  • Views as sources. Map from a view the same way you map from a table, with its dependencies resolved.
  • Evidence, not guesswork. Suggestions are scored on name, type, sampled values and referential shape, and the low-confidence ones are marked for a human rather than quietly accepted.
  • Every changed value is counted. A run reports how many values a transform altered, next to the row count.
  • One-to-many, too. Switch the canvas from Single map to One-to-many and the right-hand side becomes one group per target table, so a single source column can feed several of them at once.
  • Identity columns refuse the drop rather than accepting it and failing later. Override deliberately, from the table view.
SOURCE · dbo.Customer TARGET · dbo.Customer Visual Table customer_id full_name notes created_ts region_code CustomerIDINT DisplayNameNVARCHAR(200) CreatedOnDATETIME2(3) NotesNVARCHAR(100) Territory drop to map 4 mapped · 1 in flight · truncation flagged before it runs
high confidence needs a look low — check it being dragged
Object Mapping — dbo.Customer → dbo.Customer · grid view
SourceTargetTransformConfidence
customer_idCustomerIDHigh
full_nameDisplayNameTRIMHigh
notesNotesCAST → NVARCHAR(100)Truncates
region_codeTerritoryFixed: N'EMEA'Fixed
created_tsCreatedOnCAST → DATETIME2(3)High
legacy_ref— unmapped —Review
6 target columns · 5 mapped · 1 needs review · 2 transforms will change values
The failures you find before the run

Preflight pulls a sample of your real rows, pushes them through the mapping you have actually built, and tells you what the target would reject. Validation suites then run any SQL you like, against any table, and report the rows that failed.

  • Rejection forecast per column — truncation, out-of-range, null-into-not-null, bad conversions.
  • Your own checks. Point a suite at any table, name the column that holds the SQL, choose which columns appear in the failure report.
  • Destructive statements are parsed out and listed individually, with whether each one carries a WHERE clause.
Preflight — 5,000 sampled rows
CheckResultRows
CheckRowCountsPass
CheckOrphanRowsFail14
CheckDuplicateKeysFail3
CheckNullConstraintsPass
CheckTotalsBalancePending
FORECAST dbo.Customer.Notes — 3 of 5,000 rows exceed NVARCHAR(100)
FORECAST dbo.Orders.Amount — 1 row fails CAST to DECIMAL(10,2)
CLEAR    dbo.Product — no rejections forecast
Nine ways to look at an estate
you have never seen before

You inherit a database with four hundred tables, no documentation and the person who built it long gone. Schema Explorer is where you find out what you are actually dealing with — the same estate, drawn nine different ways, from one picker.

Schema map · tables and their keys Data map · a treemap by volume Coverage map · what your saved maps reach Migration map · subject areas Estate map · families as circles Relationship map · a chord of references Radial burst Constellation Globe
Country Currency Category TaxRate Shipment Region Address Product OrderLine Contact Invoice Territory Orders 1.2M rows
Schema map3 direct dependencies · 6 tables one hop out
Follow the keys

Pick a table and the diagram narrows to it — one hop, two hops, or the whole estate. Ask for the shortest join path between two tables and it draws that instead.

  • No foreign keys? It infers them. Plenty of estates declare none. Cygenix rebuilds the missing relationships from naming evidence and sampled values, and shows the evidence that put each one there.
  • Trace a field across the estate to see everything that references it.
  • Exclusion rules hide the drafts, the audit copies and the empty tables, so what is left is the thing you have to migrate.
  • Load order falls out of the keys: the Coverage map computes dependency waves, and a wave becomes a batch.
Where the data actually is

The Globe reads geography out of the database itself — country columns, region columns, postal codes, foreign keys into your own country table — and stands a bar off the sphere for each region it finds. Height is the volume, log-scaled; colour is the business area contributing most of it.

  • It reads words, not substrings. Column names are split before they are matched, so BillToCountryCode is geography and RealEstate is not.
  • Nothing finer than a region count reaches the screen. Every query behind it is a GROUP BY with a COUNT, so no address, client or case can appear on the globe even if one is in the data.
  • Drill in. World, then a country, then its regions — and a list of what it could not resolve, rather than a silent gap.
  • Every guess is yours to correct. Each detected column shows the evidence that classified it and can be overridden. A silently wrong map is worse than an editable one.
REGION Northern Europe Matters & clients412,880 Finance & AR208,140 Documents96,502 Reference11,204 region counts only — never a row drag to rotate · click a bar to drill into the tables behind it
The objects most tools leave behind

Schema and data are half a migration. Logins, Agent jobs, SSIS projects, linked servers and credentials live at the server level, and almost everything else either ignores them or hands you a script to run by hand.

  • Logins move intact — the hashed password and the SID travel, so orphaned users do not appear on the other side. Passwords held by a remote server are never read and never moved.
  • It checks the target first. Cygenix reads the engine edition and tells you what that target cannot hold — before it starts, not at the first failing statement.
  • Named equivalents, not a shrug. Where an object has no home on the target, the panel names the Azure construct that replaces it.
Server Migration — target assessment
Target reports: SQL Azure. Azure SQL Database holds no server-level objects at all. Nothing in this module can move to it — the equivalents below are Azure constructs you create yourself.
Object classVerdictEquivalent
Server loginsNeeds equivalentContained database users
Server rolesNeeds equivalentDatabase roles
SQL Agent jobsNeeds equivalentElastic Jobs, or Automation
SSIS projectsNeeds equivalentAzure-SSIS IR, or Data Factory
Linked serversNeeds equivalentExternal data sources
Credentials, proxiesNot possible
Proceed — disabled nothing here can move to this target
Controls that the interface cannot talk its way past

A confirmation dialog is not a control if skipping the dialog skips the control. Everything here is decided on the server, and a refusal is recorded as carefully as a permission.

Users & Roles — change guardrails
confirm-destructive Two-person rule
A DELETE, TRUNCATE, DROP or unbounded UPDATE is queued until somebody other than the requester approves it. Applies to PROD and STAGING — an unclassified connection counts as PROD.
Awaiting approval
DELETE FROM dbo.Orders no WHERE Approve
requested 2 minutes ago · expires in 13 · you cannot approve your own
  • Shared workspaces. Projects belong to the workspace, not to whoever created them, and colleagues join by invitation — named with the roles they will hold, and admitted the first time they sign in. There is no step in an identity provider's admin console.
  • Change guardrails. Confirm destructive changes, or every change. Enforced against a hash of the exact statement, so an approval cannot be replayed, moved to another target, or survive an edit to the SQL.
  • A two-person rule. Turn it on and a gated change waits for a second person. Nobody approves their own request, and the sole approver of a change cannot be the one who executes it.
  • Ten roles, one matrix. Owner, Administrator, Lead, Engineer, Approver, Data Owner, Validator, Auditor, Member, Automation. Deny by default: an action nobody has been granted is refused to everybody, administrators included.
  • A tamper-evident audit trail. Hash-chained and append-only, with an endpoint that re-walks the whole chain and names the entry where a break starts. Every gated action and every refusal is in it.
Batches, schedules, and a resume that means it

Group jobs into a batch, save it, load it back and run it. Or hand it to the Task Agent and walk away — it runs on a cadence, after another job, or at a time you pick, and emails you when it is done.

  • Batches respect dependency order, so a child table never loads before its parent.
  • Task Agent runs conversions, validation suites, reindexes, reports and custom SQL on a schedule.
  • Resume picks up from the last committed checkpoint rather than starting the whole job again.
  • Two modes. AI-assisted keeps you deciding at each step. Agentive plans and executes the whole job while you supervise. Both stop when you tell them to.Agentive: beta
Batch — nightly load · 4 groups
GroupJobState
1dbo.ProductComplete
1dbo.CustomerComplete
2dbo.CustomerAddressComplete
3dbo.OrdersRunning · 62%
4dbo.OrderLineQueued
22:00:04 batch started · 27 jobs
22:06:41 transient timeout on dbo.Orders — retrying (1/3)
22:06:58 resumed from checkpoint · 412,000 rows committed
Keep the old system running while the new one fills up

A big-bang cutover is a decision most teams would rather not make. Data Stream is continuous capture and delivery — capture from the source, a stream store in the middle, delivery to the target, with lag, backlog and dead letters visible per stream. In preview, running on sample data while the live connectors are finished.

Capture

Per-object capture with a checkpoint and a key column, started and paused independently.

Stream store

A retained middle with per-topic depth, so a slow target does not lose events.

Monitor

Lag, throughput, dead letters and alerts per stream — with a replay for anything held back.

Scope it, price it, then plan it —
without leaving the tool

Two screens that most migration tools leave to a spreadsheet. The Configurator turns scope into days and a delivery date; the Project Plan turns that estimate into a grid you can hand to a client.

MODULE EFFORT (DAYS) COMPLEXITY Discovery 8 0.8× Mapping 16 1.5× Validation 12 1.0× Server objects 6 1.2× Cutover rehearsal 4 excluded TOTAL EFFORT 42 days DAY RATE yours to set HANDS OFF TO the Planner
Configurator · effort modeltick a module in or out · the weights are yours
An estimate you can argue with

Seven standard use cases, your own module list, a complexity weight on each, and project variables on top. Every macro from the spreadsheet this replaces is a formula printed on the page — so when a client asks why the number is what it is, there is an answer.

  • Function points to a date. Points become working days, days become calendar months, and the delivery date walks forward over your working week and your holidays.
  • A verdict, not just a total. It compares the days needed against the days available before the client's due date and says whether it fits.
  • Weights can be negative. A variable may reduce effort as well as add it — with a floor, because effort can be cut and never erased.
  • Calibrate to your own quote. Tune the model so a full-scope estimate lands exactly on your standard price, and partial scopes then price proportionally inside it.
  • Save house defaults so every new estimate starts with your firm's weights, not ours. Export as CSV or JSON.
A plan you paint

Phases down the side, a month-by-week timeline across the top. Choose a tool and drag across the weeks to lay in work or stand up a milestone. It is not a Gantt chart pretending to be a project manager — it is a grid, and the grid is the report.

  • Built from the estimate in one click. Each costed use case becomes a phase, its modules become the task's detail, and the work bars paint themselves at the model's own rates. The delivery date and the client's due date land as milestones.
  • A copy, not a link. The import happens once and the plan is yours to edit — an estimate that silently rewrote your plan would be worse than no import at all.
  • Portfolio view. Every project on one timeline, by project or by resource — and where somebody is booked on two projects in the same week, that week is hatched.
  • Out as CSV, Excel or print, with the phase colours, bars and milestones intact.
W1W2W3 W4W5W6 W7W8 Discovery done Mapping 68% Validation painted Server objects Cutover A. Engineer today portfolio, by resource — a hatched week is somebody booked on two projects at once
Project Plan · phase gridpaint · milestone · erase
Something to send upstairs, not just a log file

Build interactive dashboards over the source or target with drag-and-drop charts, generate an executive summary in plain English, and ask questions of the schema without writing SQL first.

  • BI dashboards over either database, saved with the project.
  • Conversion reports and executive summaries written from the run's own record, exportable to Excel.
  • Plain-English questions — what a table is for, what depends on it, what would break if it changed.
  • Scope and plan — the Configurator and the Project Plan, above.
Reports — conversion summary
ROWS MOVED
1,284,902
REJECTED
17
TABLES
42 / 42
Summary. All 42 tables loaded. 17 rows were rejected, all on dbo.Customer.Notes, where the source value exceeds the target length. The mapping now truncates explicitly; a re-run of the affected batch is recommended before sign-off.
Exactly what it connects to

Cygenix keeps one capability manifest that the product and this page both answer to, so every engine named here is one the code connects to today. The full matrix — every source, target, combination and server-object class — lives in the documentation.

SourceStatusNotes
SQL ServerAvailable2012 and later, on-premises or hosted. Tables and views.
Azure SQL DatabaseAvailableEntra or SQL authentication.
Azure SQL Managed InstanceBetaIncluding the server-level objects a Managed Instance can hold.
PostgreSQLAvailableAs a source and as a target.
FilesAvailableCSV, Excel and delimited text, with schema inference.
Azure Blob StorageAvailableYour own container, reached with a SAS you supply.
Targets: SQL Server, Azure SQL Database, Azure SQL Managed Instance and PostgreSQL. Twelve source-to-target combinations are supported; the matrix in the documentation says which, and what changes when the engines differ.
Do it once. Prove it.
AI mapping that tells you its confidence, a preflight that finds the failures while they are cheap, server-level objects that actually travel, and a record of every gated action that stands up to being read back.
Start free trial → Read the documentation