Convert JIRA to SQL

Drag and drop files here or click to select.
Max file size 100mb.
Uploading progress:

JIRA vs SQL Format Comparison

Aspect JIRA (Source Format) SQL (Target Format)
Format Overview
JIRA
Jira Markup Language

JIRA markup is Atlassian's text formatting language used across Jira, Confluence, and Bitbucket. It provides a lightweight syntax for bold, italic, headings, tables, code blocks, lists, and links without requiring HTML knowledge. The format is designed for quick issue descriptions and project documentation.

Markup Language Atlassian
SQL
Structured Query Language

SQL is the standard language for managing and manipulating relational databases. SQL scripts contain statements for creating tables, inserting data, querying records, and managing database structures. SQL files are plain text and can be executed by any relational database management system such as MySQL, PostgreSQL, or SQLite.

Database Query Language
Technical Specifications
Structure: Plain text with Jira markup syntax
Encoding: UTF-8
Format: Atlassian markup language
Platforms: Jira, Confluence, Bitbucket
Extensions: .jira, .txt
Structure: Plain text with SQL statements
Encoding: UTF-8 or database-specific encoding
Standard: ISO/IEC 9075 (SQL standard)
MIME Type: application/sql
Extension: .sql
Syntax Examples

JIRA uses Atlassian wiki markup:

h1. Main Heading
*bold text* and _italic text_

||Header 1||Header 2||
|Cell A1|Cell A2|
|Cell B1|Cell B2|

{code:java}
System.out.println("Hello");
{code}

SQL uses structured query statements:

CREATE TABLE users (
    id INTEGER PRIMARY KEY,
    name TEXT NOT NULL,
    email TEXT UNIQUE
);

SELECT * FROM users
WHERE name LIKE '%John%';

INSERT INTO users (name, email)
VALUES ('Jane', '[email protected]');
Content Support
  • Bold (*bold*), italic (_italic_), strikethrough (-text-)
  • Headings (h1. through h6.)
  • Bullet lists (*) and numbered lists (#)
  • Tables with ||header|| and |cell| syntax
  • Code blocks with {code}...{code}
  • Links [text|url] and images !image.png!
  • Panels, quotes, and color formatting
  • CREATE TABLE with column definitions
  • INSERT, UPDATE, DELETE statements
  • SELECT queries with joins and subqueries
  • Indexes, views, and stored procedures
  • Transactions and constraints
  • Data types (INTEGER, TEXT, REAL, BLOB)
  • Comments and documentation within scripts
Advantages
  • Quick formatting without HTML knowledge
  • Native integration with Atlassian tools
  • Simple syntax for issue descriptions
  • Supports tables, code blocks, and panels
  • Widely used in software development teams
  • Easy to learn and write quickly
  • Universal database language standard
  • Structured and queryable data storage
  • Plain text, version-control friendly
  • Portable across database systems
  • Supports complex data relationships
  • Easy to automate and script
Disadvantages
  • Proprietary to Atlassian ecosystem
  • Limited rendering outside Jira/Confluence
  • Syntax differs from Markdown standards
  • No official specification document
  • Complex nesting can be difficult
  • Requires a database engine to execute
  • Syntax varies between database vendors
  • No visual or graphical representation
  • Security risks with SQL injection
  • Not designed for document presentation
Common Uses
  • Jira issue descriptions and comments
  • Confluence wiki page authoring
  • Bitbucket pull request descriptions
  • Sprint planning and project documentation
  • Technical specifications and requirements
  • Database backup and migration scripts
  • Data import and seeding operations
  • Schema definitions and versioning
  • Reporting and analytics queries
  • Application data persistence
Best For
  • Issue tracking and bug reports
  • Sprint planning and agile workflows
  • Confluence wiki documentation
  • Atlassian ecosystem collaboration
  • Database schema definitions and migrations
  • Data import, export, and seeding scripts
  • Reporting queries and analytics
  • Application data persistence and backup
Version History
Introduced: 2002 (Atlassian)
Current Version: Jira Cloud markup
Status: Active, widely used in enterprise
Evolution: Wiki markup to rich text editor (markup still supported)
Introduced: 1974 (IBM, SEQUEL)
Current Version: ISO/IEC 9075:2023
Status: Active, universal database standard
Evolution: SEQUEL (1974) to SQL-86, SQL-92, SQL:1999, SQL:2023
Software Support
Primary: Jira, Confluence, Bitbucket
Editors: Any text editor
Converters: Pandoc (jira format), j2m
Platforms: Atlassian Cloud, Data Center, Server
Databases: MySQL, PostgreSQL, SQLite, SQL Server
Tools: DBeaver, pgAdmin, MySQL Workbench
Languages: Python, Java, Node.js, PHP (all with SQL drivers)
Other: Any text editor for script editing

Why Convert JIRA to SQL?

Converting JIRA markup to SQL enables you to store structured issue tracker content in a relational database. Jira content such as issue descriptions, comments, and documentation written in Jira markup can be extracted and stored as SQL INSERT statements, making the data queryable and searchable through standard database tools.

This conversion is particularly useful for teams migrating away from Atlassian products or building analytics dashboards over their project documentation. By converting Jira markup content to SQL, you create a permanent record that can be queried, joined with other data sources, and analyzed using standard SQL tools and business intelligence platforms.

Organizations with compliance requirements benefit from archiving Jira content in SQL databases, where it can be retained, audited, and searched according to regulatory policies. The structured SQL format also enables full-text search across large volumes of historical project documentation.

Key Benefits of Converting JIRA to SQL:

  • Data Archival: Store Jira content in a structured, queryable database format
  • Search Capability: Enable full-text SQL search across all Jira documentation
  • Platform Independence: Free your content from Atlassian vendor lock-in
  • Analytics Integration: Join Jira content with other business data in SQL databases
  • Compliance: Meet audit and retention requirements with database storage
  • Batch Processing: Process large volumes of Jira content through database pipelines
  • Reporting: Build custom reports and dashboards from SQL-stored content

Practical Examples

Example 1: Issue Description to SQL

Input JIRA file (issue.jira):

h2. Bug Report: Login Failure

*Summary:* Users cannot log in after password reset.

_Steps to reproduce:_
# Go to the login page
# Enter reset password
# Click "Sign In"
# Observe error message

||Browser||Version||Status||
|Chrome|120.0|Affected|
|Firefox|121.0|Not Affected|

{code:java}
public void authenticate(String user, String pass) {
    // Authentication logic here
    logger.error("Login failed for: " + user);
}
{code}

Output SQL file (issue.sql):

-- Converted from JIRA markup
-- Source: issue.jira

CREATE TABLE IF NOT EXISTS jira_content (
    id INTEGER PRIMARY KEY,
    content_type TEXT NOT NULL,
    content TEXT
);

INSERT INTO jira_content (id, content_type, content) VALUES
(1, 'document', 'h2. Bug Report: Login Failure

*Summary:* Users cannot log in after password reset.

_Steps to reproduce:_
# Go to the login page
# Enter reset password
# Click "Sign In"
# Observe error message');

Example 2: Confluence Page to SQL

Input JIRA file (page.jira):

h1. API Documentation

h3. Authentication Endpoint

*URL:* [/api/auth|https://api.example.com/auth]
*Method:* POST

{panel:title=Request Body}
{code:json}
{
    "username": "admin",
    "password": "secret"
}
{code}
{panel}

* Returns a JWT token on success
* Token expires after 24 hours
* Rate limited to 10 requests per minute

Output SQL file (page.sql):

-- Converted from JIRA markup
-- Source: page.jira

CREATE TABLE IF NOT EXISTS jira_content (
    id INTEGER PRIMARY KEY,
    content_type TEXT NOT NULL,
    content TEXT
);

INSERT INTO jira_content (id, content_type, content) VALUES
(1, 'document', 'h1. API Documentation

h3. Authentication Endpoint

*URL:* /api/auth (https://api.example.com/auth)
*Method:* POST

Request Body:
{
    "username": "admin",
    "password": "secret"
}

* Returns a JWT token on success
* Token expires after 24 hours
* Rate limited to 10 requests per minute');

Example 3: Sprint Notes to SQL

Input JIRA file (sprint.jira):

h2. Sprint 42 Retrospective

h3. What went well
* Completed all planned stories
* _Zero_ production incidents
* Team velocity increased by *15%*

h3. Action Items
# Improve code review turnaround time
# Add integration tests for payment module
# Schedule architecture review meeting

||Metric||Target||Actual||
|Velocity|40|46|
|Bug Count|5|3|
|Code Coverage|80%|85%|

Output SQL file (sprint.sql):

-- Converted from JIRA markup
-- Source: sprint.jira

CREATE TABLE IF NOT EXISTS jira_content (
    id INTEGER PRIMARY KEY,
    content_type TEXT NOT NULL,
    content TEXT
);

INSERT INTO jira_content (id, content_type, content) VALUES
(1, 'document', 'h2. Sprint 42 Retrospective

h3. What went well
* Completed all planned stories
* Zero production incidents
* Team velocity increased by 15%

h3. Action Items
# Improve code review turnaround time
# Add integration tests for payment module
# Schedule architecture review meeting

Metric | Target | Actual
Velocity | 40 | 46
Bug Count | 5 | 3
Code Coverage | 80% | 85%');

Frequently Asked Questions (FAQ)

Q: What Jira markup elements are preserved in the SQL output?

A: The converter extracts all text content from the Jira markup, including headings, formatted text, lists, tables, code blocks, and links. The markup is stored as text within SQL INSERT statements so the original content is fully preserved.

Q: Which database systems can execute the generated SQL?

A: The output uses standard SQL syntax compatible with SQLite, MySQL, PostgreSQL, and SQL Server. The CREATE TABLE and INSERT statements follow the SQL standard and work with minimal modification on any relational database.

Q: Can I search across multiple converted Jira files in the database?

A: Yes. Once you import multiple converted files into a database, you can use SQL SELECT queries with LIKE or full-text search to find specific keywords, issue descriptions, or code snippets across all your Jira content.

Q: How are Jira code blocks handled in SQL?

A: Code blocks marked with {code}...{code} in Jira markup are included as plain text in the SQL output. Special characters like single quotes are properly escaped to ensure the SQL statements remain valid and executable.

Q: Is this useful for migrating away from Atlassian products?

A: Absolutely. Converting Jira content to SQL creates a vendor-independent archive of all your project documentation. This data can then be imported into other project management tools or used for historical analysis and compliance purposes.

Q: How are Jira tables converted to SQL?

A: Jira tables using ||header|| and |cell| syntax are converted to plain text representation within the SQL INSERT statements. The tabular structure is preserved as readable text, and the data can be queried using SQL string functions.

Q: Can I use this for Confluence pages too?

A: Yes. Confluence uses the same Jira markup syntax, so you can convert Confluence page source content to SQL using this converter. This is useful for archiving entire Confluence spaces in a database.

Q: Does the conversion handle Jira macros?

A: Common Jira macros like {code}, {panel}, {quote}, and {noformat} are processed and their content is extracted as plain text. Custom or plugin-specific macros may be preserved as-is in the SQL output for manual review.