Project Management migration

Migrate from ProjeQtOr to Jira

Field-level mapping, validation, and rollback between ProjeQtOr and Jira. We move data and schema; workflows are rebuilt natively in Jira.

ProjeQtOr logo

ProjeQtOr

Source

Jira

Destination

Jira logo

Compatibility

73%

8 of 11

objects map 1:1 between ProjeQtOr and Jira.

Complexity

BStandard

Timeline

4-6 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from ProjeQtOr to Jira is a cross-platform migration from a PHP application with no API to a cloud-native platform with a documented REST API. ProjeQtOr stores everything in MySQL or PostgreSQL under a PHP layer, requiring direct database queries or UI-based CSV or XML exports; Jira receives data via its REST or bulk API. The central challenge is extracting ProjeQtOr custom fields correctly, because they use an entity-attribute-value model stored in separate tables rather than direct columns, so a naive column-list export omits every custom field value. We write explicit SQL joins for all EAV rows during scoping, map ProjeQtOr status workflows to Jira Issue status values, and sequence the migration in dependency order: Projects first, then Resources resolved as Jira User accounts, then Issues with their Fix Versions, and finally Risks and Expenses as custom-field-backed Issue records. Document attachments require parallel file transfer since ProjeQtOr stores them as server filesystem references. Jira automations, dashboards, and filters do not migrate; we deliver a written inventory for the customer's admin to rebuild in Jira Automation or Confluence.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

ProjeQtOr logo

ProjeQtOr

What's pushing teams away

  • The web interface lacks the polish and UX consistency of modern SaaS PM tools—users report that navigating between modules and locating specific services feels unintuitive and dated.
  • Performance degrades noticeably with large portfolios—projects with hundreds of tasks and many concurrent users can experience slow load times and sluggish form submissions.
  • No native mobile app exists; teams requiring iOS or Android access must use a browser, which produces a suboptimal experience for field workers or traveling project managers.
  • Limited third-party integrations compared to platforms like Jira or Asana mean teams that rely on Slack notifications, Confluence documentation, or Salesforce CRM sync find ProjeQtOr falls short without custom development.
  • Self-hosted deployment demands internal IT resources for server maintenance, backups, PHP version updates, and database administration—ongoing operational overhead that managed SaaS tools eliminate.

Choosing

Jira logo

Jira

What's pulling them in

  • Industry-standard tool with deep Git integration and sprint reporting that engineering teams already know, reducing onboarding friction for new hires.
  • Highly customizable workflows and status schemes let business teams model complex approval chains without writing code.
  • Strong ecosystem of Atlassian Marketplace apps means specialized capabilities like time tracking or portfolio management are one install away.
  • Free tier with up to 10 users and unlimited issues gives small teams a no-cost entry point to validate the platform before committing budget.
  • Visibility features — boards, backlog grooming, sprint reports, and dashboards — give leadership a shared view of what is planned, in progress, blocked, and done.

Object mapping

How ProjeQtOr objects map to Jira

Each row shows how a ProjeQtOr object lands in Jira, including any object-level transformations, lookup resolution, or schema-design dependencies.

Typical mapping — final map is confirmed during the sample migration step.

ProjeQtOr

Project

maps to

Jira

Project

1:1
Fully supported

ProjeQtOr Projects map directly to Jira Projects. Each ProjeQtOr Project ID becomes a Jira project with a unique project key that must be alphanumeric, uppercase, and 1-10 characters. We extract the project key from ProjeQtOr's Project code field, validate it against Jira's naming constraints, and reserve the key before migration. Project description, status, and start/end dates map to the Jira Project description and date fields. Active ProjeQtOr projects map to active Jira projects; archived projects map to archived Jira projects if the destination supports archival.

ProjeQtOr

Task

maps to

Jira

Issue (Story, Task, Bug, Epic)

1:1
Fully supported

ProjeQtOr Tasks map to Jira Issues using a type-split rule we define during scoping. Standard project tasks typically become Jira Stories or Tasks depending on the ProjeQtOr task type classification. ProjeQtOr issue and incident types split into Jira Bug Issues. Parent-child task hierarchy from ProjeQtOr maps to Jira's Epic > Story > Subtask hierarchy or to linked Issues with a 'Parent' link type. Planned work hours and actual work from ProjeQtOr map to Jira's Story Points, Time Tracking, or custom number fields depending on the customer's reporting needs. WBS numbering sequences are preserved in the Jira Issue Summary or a custom field for traceability.

ProjeQtOr

Milestone

maps to

Jira

Fix Version or Milestone

1:1
Fully supported

ProjeQtOr Milestones map to Jira Fix Versions within the target project. Each ProjeQtOr Milestone with a target date and status becomes a Jira Fix Version (release) with the corresponding release date and released/unreleased flag. Milestones that are standalone and not tied to a specific project map to a Jira project we designate as the portfolio or program project, with the milestone name as the Fix Version name. If Jira Advanced Roadmaps is active (Premium/Enterprise), milestones can alternatively map to Plan milestones.

ProjeQtOr

Resource

maps to

Jira

User

1:1
Fully supported

ProjeQtOr Resources representing team members map to Jira User accounts. We extract resource email addresses as the primary matching key. Resource capacity, calendar availability, and cost rates from ProjeQtOr have no direct Jira equivalent; we preserve them as Jira User properties or custom fields on the User record if the customer requires capacity planning. Resource skills and profile descriptions migrate to the Jira user profile or to a custom User field. Any ProjeQtOr Resource without an email (system or generic resource) is flagged for the customer to provision as a Jira user or consolidate into an existing named user.

ProjeQtOr

Allocation

maps to

Jira

Issue Assignee + Sprint Assignment

lossy
Fully supported

ProjeQtOr Resource Allocations bind a Resource to a Task with a start date, end date, and daily assignment percentage. Jira does not have a native allocation object, so we map allocations to Jira's Assignee field on the Issue and Sprint assignment in the appropriate Jira Sprint. If the ProjeQtOr allocation has a percentage less than 100 percent, we store the original allocation percentage in a custom field on the Jira Issue. For Jira Premium/Enterprise with Advanced Roadmaps, allocation data can be represented as Resource Plans within a Plan.

ProjeQtOr

Expense

maps to

Jira

Custom Field on Issue or Attachment

lossy
Fully supported

ProjeQtOr Expenses capture project costs outside resource billing, including travel, software licenses, and contractor fees. Jira (standard project management tier) does not have a native expense object, so we map expense data to custom number and date fields on the parent Project or on a designated Jira Issue acting as an expense register. Expense category, amount, date, and VAT/tax amounts migrate as structured data. The customer chooses whether to display expenses as custom fields on the parent Project or as a separate Jira Issue with expense records attached.

ProjeQtOr

Risk

maps to

Jira

Issue (Risk type)

1:1
Fully supported

ProjeQtOr Risks include probability, impact, mitigation plan, and owner assignment. We map these to Jira Issues using a dedicated Risk Issue type that we create in the destination project before migration. Probability and impact values map to custom select fields on the Risk Issue; mitigation plan maps to the Issue description. The ProjeQtOr Risk owner resolves to a Jira Assignee via the User mapping. If Jira Governance (Enterprise) is not available, Risk Issues are created in the same project as standard Issues with a custom field to distinguish them.

ProjeQtOr

Issue / Incident

maps to

Jira

Issue (Bug type)

1:1
Fully supported

ProjeQtOr Issues and Incidents (including bugs, incidents, and change requests stored in a combined object) map to Jira Issues of type Bug or Task depending on the ProjeQtOr issue type classification. We extract issue type, priority, status, description, and attachments from ProjeQtOr and map them to the corresponding Jira fields. Jira requires a valid Project and Issue Type on creation, so the ProjeQtOr type-to-Jira-type mapping is applied before any Issue records are submitted via the API.

ProjeQtOr

Document

maps to

Jira

Attachment

1:1
Fully supported

ProjeQtOr Document references stored as server filesystem paths require parallel file transfer to Jira's attachment storage location. We identify all Document records in ProjeQtOr, extract the corresponding files from the application server storage directory, and upload them to Jira using the Issue attachments endpoint or the Jira REST API. Attachment URLs in migrated Jira Issues point to the new Jira attachment location. Binary file content migrates as part of this parallel transfer; the file folder hierarchy from ProjeQtOr is preserved where Jira's attachment structure allows.

ProjeQtOr

Version / Release

maps to

Jira

Fix Version

1:1
Fully supported

ProjeQtOr Versions track product releases linked to a project with a version name, number, status, and target date. We map these to Jira Fix Versions within the target project. ProjeQtOr version status (planned, in-progress, released, closed) maps to the Jira Fix Version released flag and release date. Version number from ProjeQtOr's versionName field becomes the Fix Version name, and any version description becomes the Fix Version description.

ProjeQtOr

Status Workflow

maps to

Jira

Jira Status and Status Category

lossy
Fully supported

ProjeQtOr supports custom status workflows per object type with statuses defined in a workflow table. We extract the full set of ProjeQtOr statuses per object type and map them to Jira Status values (To Do, In Progress, Done) or custom Status values. Each ProjeQtOr workflow status gets a corresponding Jira status with the same name and color. Jira Status Categories (Todo, In Progress, Done) are assigned based on the ProjeQtOr workflow stage. The Jira Workflow scheme is configured to associate the correct statuses with the relevant Issue types before migration.

Gotchas + challenges

What specifically takes care here

Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.

ProjeQtOr logo

ProjeQtOr gotchas

High

No API means migrations rely on database exports or UI exports

Medium

PHP and database version dependencies constrain self-hosted upgrades

Medium

Custom fields stored as EAV rows require careful mapping

Medium

File attachments and documents are server-filesystem references

Jira logo

Jira gotchas

High

Unsupported workflow validators silently skipped during migration

High

Custom fields converted to flat text labels when migrating to non-Jira platforms

Medium

Historical status-change timestamps lost when exporting without a Marketplace plugin

Medium

Attachment import failures from oversized files and JQL reference corruption

Medium

Points-based API rate limits enforced on Jira Cloud apps from March 2026

Pair-specific challenges

  • No API means database extraction is the only extraction path

    ProjeQtOr does not expose a REST API, GraphQL endpoint, or bulk data export endpoint. All migration data must come from direct MySQL or PostgreSQL queries or from CSV and XML exports generated through the application UI. Direct database access requires read credentials with sufficient privileges to run SELECT queries across all tables without locking production data. We request a replica database connection or a read-only database dump for migration scoping and map the PHP application field names to underlying database column names using the schema documentation generated during the discovery phase. We never run write queries against the production database.

  • Custom fields use EAV storage and require explicit table joins

    ProjeQtOr extends its standard objects with custom fields stored in a separate EAV (entity-attribute-value) table with object-type and ID references, not as direct columns on the main record table. A simple column-list export omits every custom field value unless the export query explicitly joins the custom field tables. We write migration queries that enumerate the custom field associations for each object type and flatten them into Jira custom fields during the load phase. Any custom fields with no natural Jira equivalent are flagged for the customer to decide whether to drop them, merge into the Issue description, or create new Jira custom fields during schema setup.

  • Jira project keys must be allocated before any Issue import

    Jira requires a valid project key (alphanumeric, uppercase, 1-10 characters) at Issue creation time, and keys must be unique across the Jira instance. If the ProjeQtOr project code does not conform to Jira's key constraints, we derive a compliant key from the ProjeQtOr project name or code during scoping and reserve it in the destination Jira site before any data moves. ProjeQtOr projects without a defined code require a new key to be generated, which must be documented for the customer's team since the Jira project key cannot be changed after creation.

  • File attachments are server filesystem references requiring parallel transfer

    Document attachments in ProjeQtOr are stored as files on the application server filesystem with database references pointing to the file location. Migrating only the database records produces broken attachment links. We handle this by identifying all document records, locating the corresponding files in the ProjeQtOr file storage directory, and running a parallel file transfer to Jira's document attachment endpoint using the same folder hierarchy where possible. The attachment URLs in migrated Jira Issues are updated to point to the new Jira attachment location after the file transfer completes.

  • ProjeQtOr status workflows require manual Jira status mapping

    ProjeQtOr supports custom status workflows per object type with statuses defined in the workflow table. Jira requires a finite set of Status values per project, and status transitions are governed by Jira workflows. We read the ProjeQtOr workflow definition table during discovery, enumerate all available statuses per object type, and map them to Jira Status values. Any ProjeQtOr statuses that have no equivalent Jira status require the customer to choose an existing Jira status or approve the creation of a custom Jira status. The Jira Workflow scheme is configured before migration begins so that incoming Issues land in the correct workflow.

Migration approach

Six steps for a successful ProjeQtOr to Jira data migration

  1. Discovery and database schema extraction

    We request a read-only connection to the ProjeQtOr MySQL or PostgreSQL database (or a replica) and extract the full schema including all tables and column names. We audit record volumes across Projects, Tasks, Milestones, Resources, Allocations, Expenses, Risks, Issues, Documents, Versions, and Status Workflows. We examine the EAV custom field tables to enumerate every custom field defined per object type. We review the ProjeQtOr project codes and map them to Jira project key constraints. The discovery output is a written data inventory with record counts, custom field list, and status workflow summary.

  2. Jira destination schema design

    We design the Jira destination schema before any data moves. This includes provisioning Jira Projects with validated project keys derived from ProjeQtOr project codes, creating a custom Issue type scheme if the ProjeQtOr object types require Bug, Task, Story, Epic, or Risk types, defining Jira custom fields to receive ProjeQtOr EAV custom field values, and mapping ProjeQtOr status workflow values to Jira Status values and Status Categories. The schema design is validated in a Jira Sandbox or the production Jira site before migration begins, and any required Jira Premium features (Advanced Roadmaps for capacity planning) are identified and scoped.

  3. Data extraction and transformation from ProjeQtOr

    We extract data from ProjeQtOr using direct SQL queries against the database. Custom field values are retrieved by explicitly joining the EAV custom field tables to the main record table for each object type. Document attachments are enumerated by querying the document table for file paths, and we initiate a parallel file extraction from the ProjeQtOr server filesystem. We transform ProjeQtOr dates, statuses, and enumerations to match Jira field types and formats. The output of this step is a set of CSV or JSON extracts per object type, ready for Jira API ingestion.

  4. Test migration and reconciliation

    We run a test migration using a representative subset of data from each ProjeQtOr object type into the Jira destination. We validate that Issue records land in the correct Projects with the right Issue types, that custom field values are present and correctly formatted, that assignee resolution matches the Resource-to-User mapping, that attachments are accessible in Jira, and that Fix Versions are created with the correct release dates. We reconcile test record counts against the source ProjeQtOr record counts and correct any mapping errors before proceeding to the production migration.

  5. Production migration in dependency order

    We run the production migration in record-dependency order to satisfy Jira's foreign key requirements. Projects are created first with their project keys. Resources are resolved as Jira User accounts by email match; any ProjeQtOr Resources without Jira users are held in a reconciliation queue for the customer to provision. Fix Versions are created next. Issues are imported in batches with Project, Issue Type, Status, and Assignee resolved per record. Risks and Expenses are imported as Issue records with custom fields populated from the ProjeQtOr extract. Document attachments are uploaded via the Jira attachments endpoint in parallel with Issue imports.

  6. Cutover, validation, and handoff

    We freeze ProjeQtOr writes during the cutover window and run a final delta migration for any records modified during the migration. We validate the final Jira state against the ProjeQtOr source: record counts per object type, spot-checks on 25-50 random Issues for field accuracy, verification that attachment file counts match, and confirmation that Fix Version release dates match ProjeQtOr milestone dates. We deliver a written inventory of all ProjeQtOr automations and status workflows requiring rebuild in Jira Automation or Jira Suite Utilities. We provide a one-week hypercare window to resolve post-migration reconciliation issues raised by the project team.

Platform deep dives

Context on both ends of the pair

ProjeQtOr logo

ProjeQtOr

Source

Strengths

  • Completely free and open source under AGPLv3+ with no artificial user, project, or feature caps.
  • Wide functional scope covering tasks, resources, risks, expenses, documents, budgets, and bug tracking in a single application.
  • Supports MySQL and PostgreSQL, giving teams flexibility in their database infrastructure and hosting environment.
  • Active community and documented MS-Project import/export via a dedicated plugin for organizations migrating from or to other PM platforms.
  • Multi-platform deployment on Windows, Linux, macOS and web-based access from any modern browser.

Weaknesses

  • No documented REST, GraphQL, or bulk API—migrations require direct database queries or XML/CSV export from the application UI, which is error-prone for large datasets.
  • Self-hosted model places all server maintenance, backups, and security hardening on the customer's IT team.
  • No native mobile applications; mobile access depends entirely on the responsive web interface which users describe as functional but not polished.
  • Limited integration ecosystem compared to commercial alternatives—no native Zapier, Microsoft Teams, or Google Workspace connectors.
  • User interface complexity and dated visual design create a steeper onboarding curve than modern SaaS project management tools.
Jira logo

Jira

Destination

Strengths

  • Deeply customizable workflows and status schemes with no hard limits on workflow complexity or number of custom statuses.
  • Strong agile ceremony support: sprint planning, backlog grooming, velocity tracking, and burndown charts for Scrum teams.
  • Industry-standard developer tool with native Git integration linking commits, pull requests, and deployments to issues.
  • Large Atlassian Marketplace with thousands of plugins extending time tracking, portfolio management, and reporting capabilities.
  • Free tier available for up to 10 users with unlimited issues, enabling evaluation before committing to a paid plan.

Weaknesses

  • Excessive configurability creates a steep learning curve; cross-team consistency is hard to maintain without strict governance.
  • Performance degrades with large backlogs, complex custom fields, and heavily nested issue hierarchies.
  • Reporting requires additional configuration or paid plugins; out-of-the-box analytics are limited for business users.
  • Jira lacks native sprint management, requiring Jira Software for true agile team features.
  • Teams outside engineering resist adoption due to UI complexity, leaving the all-in-one promise unfulfilled for cross-functional organizations.

Complexity grading

How hard is this migration?

Standard Project Management migration. 3 of 8 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across ProjeQtOr and Jira.

  • Object compatibility

    B

    3 of 8 objects need a mapping; the rest are 1:1.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    8-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    ProjeQtOr: Not applicable—no API exposed.

  • Data volume sensitivity

    B

    ProjeQtOr doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your ProjeQtOr to Jira migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about ProjeQtOr to Jira data migrations

Answers to the questions buyers ask most during ProjeQtOr to Jira migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your ProjeQtOr to Jira migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most migrations land between four and six weeks for accounts under 5,000 tasks, 50 users, and a simple status workflow structure. Migrations with large task hierarchies (over 10,000 tasks), extensive EAV custom field sets, multiple ProjeQtOr status workflows to reconcile, or risk and expense tracking that requires Jira custom field provisioning move to eight to twelve weeks because of SQL extraction complexity and Jira schema setup time.

Adjacent paths

Related migrations to explore

Ready when you are

Move from ProjeQtOr.
Land in Jira, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day