Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Saying No to NoSQL
Search
Jonathan Neddenriep
November 01, 2012
Programming
240
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Saying No to NoSQL
Migrating a production system from Mongo to Postgres Without losing your mind or your data.
Jonathan Neddenriep
November 01, 2012
Other Decks in Programming
See All in Programming
機械に任せるテスト、人が見るテスト ⽣成AIで引き直した、運⽤保守フェーズの線引き
dske104
0
190
Agents on Rails - Rails at Scale 2026
irinanazarova
0
560
AIで開発が速くなった先で、開発チームは何を目指すか
shihochan
0
880
[Dev Group Paris Octobre 26] Agentforce, SIforce, Claudeforce, Slackbot… on s'y retrouve ?
nabondance
0
110
RAG の “R” を Swift で覗いてみる 〜「意味から探す」検索の仕組み〜
nao_randd
0
160
Event is what happens
moro
2
770
見えないものを探る要求要件定義に必要な基本的思考 / invisible-requirement-thinking
minodriven
15
8.5k
JIS keyboard support in Omarchy
lef237
0
110
Everything will be SERVERLESS — 信じて運用した10年の経験値 / Everything Will be Serverless — Lessons Learned from 10 Years of Operational Experience
seike460
PRO
1
1.1k
Domain-Driven Transformation
hschwentner
2
2.3k
S3 TablesのIcebergデータに、AIエージェントからアクセスしてみた / 20261016developersio2026joetsu-accessing-iceberg-in-s3tables-via-agent
kasacchiful
PRO
0
150
Optunaを作ったときにやりたかったこと、その後 (2026/10/16, Optuna Meetup #3)
iwiwi
1
430
Featured
See All Featured
Crafting Experiences
bethany
1
380
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
How Software Deployment tools have changed in the past 20 years
geshan
2
35k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Google's AI Overviews - The New Search
badams
0
1.6k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
2
330
Paper Plane
katiecoart
PRO
5
54k
Deep Space Network (abreviated)
tonyrice
0
370
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.4k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
410
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
280
Un-Boring Meetings
codingconduct
0
460
Transcript
Saying No to NoSQL Migrating a production system from Mongo
to Postgres Without losing your mind or your data Jonathan Neddenriep
The Application Appstack Fast growing production System handling significant $$
The Motivation
Create a Schema From a big pile'o'data
Massage Data into Schema The hard part
account_id = ? mongo_account_id = 4cc67093475061e3d95369d account_id = 4cc67093475061e3d95369d_placeholder mongo_account_id
= 4cc67093475061e3d95369d account_id = 125612 mongo_account_id = 4cc67093475061e3d95369d
{ ... 4cc67093475061e3d95369d => 125612 ... } { ... 4cc67093475061e3d95369d
=> [358, 8256] ... } [ ... 358 => "insert into..." ... ]
Code Conversion The tedious part
Code Conversion Find all instances of things like .gte, .lt,
.eq, .ne, .any, .only Replace relationships like embeds_many with has_many • •
Three Problems
Three Problems # clean up any apostrophes val = val.gsub(/'/,
"") unless val.nil? || !val.is_a? (String)
Three Problems Timezones Duplicate primary ids • •
The Results
What to Learn
Questions? Jonathan Neddenriep
[email protected]
http://github.com/neddenriep