CINXE.COM
Rails app change postgres db to sqlite3 using litestack - Build debugging - Fly.io
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Rails app change postgres db to sqlite3 using litestack - Build debugging - Fly.io</title> <meta name="description" content="As per the title I am attempting to change my Ruby on Rails v7.2.2 app from using a postgres db to a sqlite3 db. I am using litestack to fascilitate that and have used the Ruby Dispatch - SQLite &amp; Rails in Production art&hellip;"> <meta name="generator" content="Discourse 3.4.0.beta3-dev - https://github.com/discourse/discourse version d71016522e8d9bb21c20312388271f8f0dd53069"> <link rel="icon" type="image/png" href="https://global.discourse-cdn.com/fly1/optimized/1X/276bd78a68c1a9248075881ff96190aa81ee5804_2_32x32.png"> <link rel="apple-touch-icon" type="image/png" href="https://global.discourse-cdn.com/fly1/optimized/1X/6e8955d00cb218e186ebbe3a6ab06fefdce15290_2_180x180.svg"> <meta name="theme-color" media="all" content="#3c83e7"> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, user-scalable=yes, viewport-fit=cover"> <link rel="canonical" href="https://community.fly.io/t/rails-app-change-postgres-db-to-sqlite3-using-litestack/22787" /> <link rel="search" type="application/opensearchdescription+xml" href="https://community.fly.io/opensearch.xml" title="Fly.io Search"> <link href="https://sea1.discourse-cdn.com/fly1/stylesheets/color_definitions_graceful_10_11_7a40646533b6c49ba7d304cff935ac98a67182f3.css?__ws=community.fly.io" media="all" rel="stylesheet" class="light-scheme"/> <link href="https://sea1.discourse-cdn.com/fly1/stylesheets/desktop_6fc0fa5be0c6005b80c3c33102ff5aa2e4e98b40.css?__ws=community.fly.io" media="all" rel="stylesheet" data-target="desktop" /> <link href="https://sea1.discourse-cdn.com/fly1/stylesheets/checklist_6fc0fa5be0c6005b80c3c33102ff5aa2e4e98b40.css?__ws=community.fly.io" media="all" rel="stylesheet" data-target="checklist" /> <link href="https://sea1.discourse-cdn.com/fly1/stylesheets/discourse-ai_6fc0fa5be0c6005b80c3c33102ff5aa2e4e98b40.css?__ws=community.fly.io" media="all" rel="stylesheet" data-target="discourse-ai" /> <link href="https://sea1.discourse-cdn.com/fly1/stylesheets/discourse-akismet_6fc0fa5be0c6005b80c3c33102ff5aa2e4e98b40.css?__ws=community.fly.io" media="all" rel="stylesheet" data-target="discourse-akismet" /> <link href="https://sea1.discourse-cdn.com/fly1/stylesheets/discourse-cakeday_6fc0fa5be0c6005b80c3c33102ff5aa2e4e98b40.css?__ws=community.fly.io" media="all" rel="stylesheet" data-target="discourse-cakeday" /> <link href="https://sea1.discourse-cdn.com/fly1/stylesheets/discourse-chat-integration_6fc0fa5be0c6005b80c3c33102ff5aa2e4e98b40.css?__ws=community.fly.io" media="all" rel="stylesheet" data-target="discourse-chat-integration" /> <link href="https://sea1.discourse-cdn.com/fly1/stylesheets/discourse-details_6fc0fa5be0c6005b80c3c33102ff5aa2e4e98b40.css?__ws=community.fly.io" media="all" rel="stylesheet" data-target="discourse-details" /> <link href="https://sea1.discourse-cdn.com/fly1/stylesheets/discourse-lazy-videos_6fc0fa5be0c6005b80c3c33102ff5aa2e4e98b40.css?__ws=community.fly.io" media="all" rel="stylesheet" data-target="discourse-lazy-videos" /> <link href="https://sea1.discourse-cdn.com/fly1/stylesheets/discourse-local-dates_6fc0fa5be0c6005b80c3c33102ff5aa2e4e98b40.css?__ws=community.fly.io" media="all" rel="stylesheet" data-target="discourse-local-dates" /> <link href="https://sea1.discourse-cdn.com/fly1/stylesheets/discourse-policy_6fc0fa5be0c6005b80c3c33102ff5aa2e4e98b40.css?__ws=community.fly.io" media="all" rel="stylesheet" data-target="discourse-policy" /> <link href="https://sea1.discourse-cdn.com/fly1/stylesheets/discourse-presence_6fc0fa5be0c6005b80c3c33102ff5aa2e4e98b40.css?__ws=community.fly.io" media="all" rel="stylesheet" data-target="discourse-presence" /> <link href="https://sea1.discourse-cdn.com/fly1/stylesheets/discourse-solved_6fc0fa5be0c6005b80c3c33102ff5aa2e4e98b40.css?__ws=community.fly.io" media="all" rel="stylesheet" data-target="discourse-solved" /> <link href="https://sea1.discourse-cdn.com/fly1/stylesheets/discourse-templates_6fc0fa5be0c6005b80c3c33102ff5aa2e4e98b40.css?__ws=community.fly.io" media="all" rel="stylesheet" data-target="discourse-templates" /> <link href="https://sea1.discourse-cdn.com/fly1/stylesheets/discourse-topic-voting_6fc0fa5be0c6005b80c3c33102ff5aa2e4e98b40.css?__ws=community.fly.io" media="all" rel="stylesheet" data-target="discourse-topic-voting" /> <link href="https://sea1.discourse-cdn.com/fly1/stylesheets/footnote_6fc0fa5be0c6005b80c3c33102ff5aa2e4e98b40.css?__ws=community.fly.io" media="all" rel="stylesheet" data-target="footnote" /> <link href="https://sea1.discourse-cdn.com/fly1/stylesheets/hosted-site_6fc0fa5be0c6005b80c3c33102ff5aa2e4e98b40.css?__ws=community.fly.io" media="all" rel="stylesheet" data-target="hosted-site" /> <link href="https://sea1.discourse-cdn.com/fly1/stylesheets/poll_6fc0fa5be0c6005b80c3c33102ff5aa2e4e98b40.css?__ws=community.fly.io" media="all" rel="stylesheet" data-target="poll" /> <link href="https://sea1.discourse-cdn.com/fly1/stylesheets/spoiler-alert_6fc0fa5be0c6005b80c3c33102ff5aa2e4e98b40.css?__ws=community.fly.io" media="all" rel="stylesheet" data-target="spoiler-alert" /> <link href="https://sea1.discourse-cdn.com/fly1/stylesheets/discourse-ai_desktop_6fc0fa5be0c6005b80c3c33102ff5aa2e4e98b40.css?__ws=community.fly.io" media="all" rel="stylesheet" data-target="discourse-ai_desktop" /> <link href="https://sea1.discourse-cdn.com/fly1/stylesheets/discourse-topic-voting_desktop_6fc0fa5be0c6005b80c3c33102ff5aa2e4e98b40.css?__ws=community.fly.io" media="all" rel="stylesheet" data-target="discourse-topic-voting_desktop" /> <link href="https://sea1.discourse-cdn.com/fly1/stylesheets/poll_desktop_6fc0fa5be0c6005b80c3c33102ff5aa2e4e98b40.css?__ws=community.fly.io" media="all" rel="stylesheet" data-target="poll_desktop" /> <link href="https://sea1.discourse-cdn.com/fly1/stylesheets/desktop_theme_11_830c6ccc8eef42da7ee7392013202b0802039f33.css?__ws=community.fly.io" media="all" rel="stylesheet" data-target="desktop_theme" data-theme-id="11" data-theme-name="graceful"/> <script src="https://status.flyio.net/embed/script.js" defer="" nonce="ILwrm0GhIRWtLoSNk75yUPGns"></script> <script defer="" data-domain="community.fly.io" src="https://plausible.io/js/script.hash.js" nonce="ILwrm0GhIRWtLoSNk75yUPGns"></script> <link rel="alternate nofollow" type="application/rss+xml" title="RSS feed of 'Rails app change postgres db to sqlite3 using litestack'" href="https://community.fly.io/t/rails-app-change-postgres-db-to-sqlite3-using-litestack/22787.rss" /> <meta property="og:site_name" content="Fly.io" /> <meta property="og:type" content="website" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:image" content="https://global.discourse-cdn.com/fly1/original/3X/d/f/df182ca52467742d389d4af72b63e05802bf38d8.jpeg" /> <meta property="og:image" content="https://global.discourse-cdn.com/fly1/original/3X/6/e/6e8955d00cb218e186ebbe3a6ab06fefdce15290.svg" /> <meta property="og:url" content="https://community.fly.io/t/rails-app-change-postgres-db-to-sqlite3-using-litestack/22787" /> <meta name="twitter:url" content="https://community.fly.io/t/rails-app-change-postgres-db-to-sqlite3-using-litestack/22787" /> <meta property="og:title" content="Rails app change postgres db to sqlite3 using litestack" /> <meta name="twitter:title" content="Rails app change postgres db to sqlite3 using litestack" /> <meta property="og:description" content="As per the title I am attempting to change my Ruby on Rails v7.2.2 app from using a postgres db to a sqlite3 db. I am using litestack to fascilitate that and have used the Ruby Dispatch - SQLite & Rails in Production article by Brad Gessler as my starting point. Steps I have taken are: Install litestack - deemed successful as it works in Development mode. Litestack modifies config/database.yml with adapter: litedb and database: <%= Litesupport.root("production").join("data.sqlite3") %> It a..." /> <meta name="twitter:description" content="As per the title I am attempting to change my Ruby on Rails v7.2.2 app from using a postgres db to a sqlite3 db. I am using litestack to fascilitate that and have used the Ruby Dispatch - SQLite & Rails in Production article by Brad Gessler as my starting point. Steps I have taken are: Install litestack - deemed successful as it works in Development mode. Litestack modifies config/database.yml with adapter: litedb and database: <%= Litesupport.root("production").join("data.sqlite3") %> It a..." /> <meta property="og:article:section" content="Questions / Help" /> <meta property="og:article:section:color" content="0088CC" /> <meta property="og:article:section" content="Build debugging" /> <meta property="og:article:section:color" content="92278F" /> <meta property="og:article:tag" content="rails" /> <meta property="og:article:tag" content="volumes" /> <meta property="og:article:tag" content="sqlite" /> <meta name="twitter:label1" value="Reading time" /> <meta name="twitter:data1" value="3 mins 🕑" /> <meta name="twitter:label2" value="Likes" /> <meta name="twitter:data2" value="3 ❤" /> <meta property="article:published_time" content="2024-11-25T21:48:47+00:00" /> <meta property="og:ignore_canonical" content="true" /> <script type="application/ld+json">{"@context":"http://schema.org","@type":"QAPage","name":"Rails app change postgres db to sqlite3 using litestack","mainEntity":{"@type":"Question","name":"Rails app change postgres db to sqlite3 using litestack","text":"As per the title I am attempting to change my Ruby on Rails v7.2.2 app from using a postgres db to a sqlite3 db. I am using litestack to fascilitate that and have used the Ruby Dispatch - SQLite & Rails in Production article by Brad Gessler as my starting point. Steps I have taken are:\n\nInstall lit…","upvoteCount":0,"answerCount":1,"datePublished":"2024-11-25T21:48:47.346Z","author":{"@type":"Person","name":"rondo","url":"https://community.fly.io/u/rondo"},"acceptedAnswer":{"@type":"Answer","text":"[image] rondo:\n\nWhat I need to do is direct copy my development database to the /data/production folder in the volume.\n\nSFTP is easiest for that, in my opinion:\n\n<a href=\"https://community.fly.io/t/backup-and-restore-sqlite-db-to-server/21232/2\">https://community.fly.io/t/backup-and-restore-sqlite-db-to-server/21232/2<\/a>\n\n(You may need an extra step to tweak permissions at the en…","upvoteCount":0,"datePublished":"2024-11-27T02:49:12.391Z","url":"https://community.fly.io/t/rails-app-change-postgres-db-to-sqlite3-using-litestack/22787/17","author":{"@type":"Person","name":"mayailurus","url":"https://community.fly.io/u/mayailurus"}}}}</script> </head> <body class="crawler browser-update"> <div class="background-container"></div> <header> <a href="/"> Fly.io </a> </header> <div id="main-outlet" class="wrap" role="main"> <div id="topic-title"> <h1> <a href="/t/rails-app-change-postgres-db-to-sqlite3-using-litestack/22787">Rails app change postgres db to sqlite3 using litestack</a> </h1> <div class="topic-category" itemscope itemtype="http://schema.org/BreadcrumbList"> <span itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"> <a href="/c/questions-and-help/build-debugging/12" class="badge-wrapper bullet" itemprop="item"> <span class='badge-category-bg' style='background-color: #0088CC'></span> <span class='badge-category clear-badge'> <span class='category-name' itemprop='name'>Questions / Help</span> </span> </a> <meta itemprop="position" content="1" /> </span> <span itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"> <a href="/c/questions-and-help/build-debugging/12" class="badge-wrapper bullet" itemprop="item"> <span class='badge-category-bg' style='background-color: #92278F'></span> <span class='badge-category clear-badge'> <span class='category-name' itemprop='name'>Build debugging</span> </span> </a> <meta itemprop="position" content="2" /> </span> </div> <div class="topic-category"> <div class='discourse-tags list-tags'> <a href='https://community.fly.io/tag/rails' class='discourse-tag' rel="tag">rails</a>, <a href='https://community.fly.io/tag/volumes' class='discourse-tag' rel="tag">volumes</a>, <a href='https://community.fly.io/tag/sqlite' class='discourse-tag' rel="tag">sqlite</a> </div> </div> </div> <div itemscope itemtype='http://schema.org/DiscussionForumPosting'> <meta itemprop='headline' content='Rails app change postgres db to sqlite3 using litestack'> <link itemprop='url' href='https://community.fly.io/t/rails-app-change-postgres-db-to-sqlite3-using-litestack/22787'> <meta itemprop='datePublished' content='2024-11-25T21:48:47Z'> <meta itemprop='articleSection' content='Build debugging'> <meta itemprop='keywords' content='rails, volumes, sqlite'> <div itemprop='publisher' itemscope itemtype="http://schema.org/Organization"> <meta itemprop='name' content='Fly.io'> <div itemprop='logo' itemscope itemtype="http://schema.org/ImageObject"> <meta itemprop='url' content='https://global.discourse-cdn.com/fly1/original/3X/4/9/49b670bceec1e465f38edfcb9223f572edcbe900.svg'> </div> </div> <div id='post_1' class='topic-body crawler-post'> <div class='crawler-post-meta'> <span class="creator" itemprop="author" itemscope itemtype="http://schema.org/Person"> <a itemprop="url" href='https://community.fly.io/u/rondo'><span itemprop='name'>rondo</span></a> </span> <link itemprop="mainEntityOfPage" href="https://community.fly.io/t/rails-app-change-postgres-db-to-sqlite3-using-litestack/22787"> <span class="crawler-post-infos"> <time datetime='2024-11-25T21:48:47Z' class='post-time'> November 25, 2024, 9:48pm </time> <meta itemprop='dateModified' content='2024-11-25T21:51:54Z'> <span itemprop='position'>1</span> </span> </div> <div class='post' itemprop='text'> <p>As per the title I am attempting to change my Ruby on Rails v7.2.2 app from using a postgres db to a sqlite3 db. I am using litestack to fascilitate that and have used the Ruby Dispatch - SQLite & Rails in Production article by Brad Gessler as my starting point. Steps I have taken are:</p> <ol> <li>Install litestack - deemed successful as it works in Development mode.</li> </ol> <p> Litestack modifies config/database.yml with <code>adapter: litedb</code> and <code>database: <%= Litesupport.root("production").join("data.sqlite3") %></code> It also adds development and production folders to the db folder with data.sqlite3 being the sqlite files in each.</p> <ol start="2"> <li>Create a persistent Volume on fly:</li> </ol> <pre><code class="lang-auto">fly volumes create sqlite_volume --region syd -n 1 --size 1 --app my-app fly volumes list ID STATE NAME SIZE REGION ZONE ENCRYPTED ATTACHED VM vol_vg32ogzyxjdxyyyy created sqlite_volume 1GB syd 80c5 true </code></pre> <ol start="3"> <li>Add mounts to fly.toml</li> </ol> <pre><code class="lang-auto">[[mounts]] source = "sqlite_volume" destination = "/data" </code></pre> <ol start="4"> <li>Add LITESTACK_DATA_PATH to Dockerfile</li> </ol> <pre><code class="lang-auto"> LITESTACK_DATA_PATH="/data" </code></pre> <ol start="5"> <li>Deploy to <a href="http://fly.io">fly.io</a></li> </ol> <pre data-code-wrap="sh"><code class="lang-sh">fly deploy ✓ Configuration is valid . . Error: Process group 'app' needs volumes with name 'sqlite_volume' to fulfill mounts defined in fly.toml; Run `fly volume create sqlite_volume -r REGION -n COUNT` for the following regions and counts: syd=2 </code></pre> <p>I don’t understand the error message - I already created the volume and added it as source in fly.toml. What else do I need to do?</p> <p>I thought I was well prepared for this but I must have missed something? Can anyone please help?</p> </div> <div itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter"> <meta itemprop="interactionType" content="http://schema.org/LikeAction"/> <meta itemprop="userInteractionCount" content="0" /> <span class='post-likes'></span> </div> </div> <div id='post_3' itemprop='comment' itemscope itemtype='http://schema.org/Comment' class='topic-body crawler-post'> <div class='crawler-post-meta'> <span class="creator" itemprop="author" itemscope itemtype="http://schema.org/Person"> <a itemprop="url" href='https://community.fly.io/u/mayailurus'><span itemprop='name'>mayailurus</span></a> </span> <span class="crawler-post-infos"> <time itemprop='datePublished' datetime='2024-11-25T21:56:50Z' class='post-time'> November 25, 2024, 9:56pm </time> <meta itemprop='dateModified' content='2024-11-25T21:56:50Z'> <span itemprop='position'>3</span> </span> </div> <div class='post' itemprop='text'> <aside class="quote no-group" data-username="rondo" data-post="1" data-topic="22787"> <div class="title"> <div class="quote-controls"></div> <img loading="lazy" alt="" width="24" height="24" src="https://sea1.discourse-cdn.com/fly1/user_avatar/community.fly.io/rondo/48/35187_2.png" class="avatar"> rondo:</div> <blockquote> <p><code>syd=2</code></p> </blockquote> </aside> <p>Hi… It’s asking for <em>two</em> volumes here, although it’s not clear why it didn’t create the second one automatically…</p> <p>What does <code>fly m list</code> currently show? (You may need to pare down your current set before proceeding.)</p> </div> <div itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter"> <meta itemprop="interactionType" content="http://schema.org/LikeAction"/> <meta itemprop="userInteractionCount" content="0" /> <span class='post-likes'></span> </div> </div> <div id='post_5' itemprop='comment' itemscope itemtype='http://schema.org/Comment' class='topic-body crawler-post'> <div class='crawler-post-meta'> <span class="creator" itemprop="author" itemscope itemtype="http://schema.org/Person"> <a itemprop="url" href='https://community.fly.io/u/rondo'><span itemprop='name'>rondo</span></a> </span> <span class="crawler-post-infos"> <time itemprop='datePublished' datetime='2024-11-25T22:24:09Z' class='post-time'> November 25, 2024, 10:24pm </time> <meta itemprop='dateModified' content='2024-11-25T22:24:09Z'> <span itemprop='position'>5</span> </span> </div> <div class='post' itemprop='text'> <aside class="quote no-group" data-username="mayailurus" data-post="3" data-topic="22787"> <div class="title"> <div class="quote-controls"></div> <img loading="lazy" alt="" width="24" height="24" src="https://sea1.discourse-cdn.com/fly1/user_avatar/community.fly.io/mayailurus/48/17593_2.png" class="avatar"> mayailurus:</div> <blockquote> <p>s</p> </blockquote> </aside> <pre><code class="lang-auto">fly m list 3 machines have been retrieved from app holmes-genealogy. View them in the UI here (https://fly.io/apps/holmes-genealogy/machines/) holmes-genealogy ID NAME STATE CHECKS REGION ROLE IMAGE IP ADDRESS VOLUME CREATED LAST UPDATED PROCESS GROUP SIZE 148e5264c264e8 black-mountain-8276 stopped syd holmes-genealogy:deployment-01JCQ36GQXAKTK68S3A3BA90BF fdaa:9:141c:a7b:2db:3f9a:ece0:2 2024-07-02T15:11:09Z 2024-11-15T05:06:03Z app shared-cpu-1x:1024MB 5683d513a52048 damp-wood-9420 started syd holmes-genealogy:deployment-01JCQ36GQXAKTK68S3A3BA90BF fdaa:9:141c:a7b:1b4:6b5d:1eeb:2 2024-05-09T22:43:23Z 2024-11-15T05:06:10Z app shared-cpu-1x:1024MB 4d89172da00e78 bold-resonance-1060 stopped syd holmes-genealogy:deployment-01JCQ36GQXAKTK68S3A3BA90BF fdaa:9:141c:a7b:1ae:59ad:c361:2 2024-07-10T20:47:44Z 2024-11-15T05:11:50Z app shared-cpu-1x:1024MB </code></pre> <p>I am doing this on an existing app so didn’t use fly launch to create the volumes. I created the volume myself. I did try a second volume with same name but the error message came back as ‘syd=1’ Should I have run fly launch again prior to the fly deploy?</p> </div> <div itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter"> <meta itemprop="interactionType" content="http://schema.org/LikeAction"/> <meta itemprop="userInteractionCount" content="0" /> <span class='post-likes'></span> </div> </div> <div id='post_6' itemprop='comment' itemscope itemtype='http://schema.org/Comment' class='topic-body crawler-post'> <div class='crawler-post-meta'> <span class="creator" itemprop="author" itemscope itemtype="http://schema.org/Person"> <a itemprop="url" href='https://community.fly.io/u/mayailurus'><span itemprop='name'>mayailurus</span></a> </span> <span class="crawler-post-infos"> <time itemprop='datePublished' datetime='2024-11-25T22:25:19Z' class='post-time'> November 25, 2024, 10:25pm </time> <meta itemprop='dateModified' content='2024-11-25T22:25:19Z'> <span itemprop='position'>6</span> </span> </div> <div class='post' itemprop='text'> <p>No, <code>fly deploy</code> was correct.</p> <p>Overall, you won’t be able to use SQLite with three machines, since they’d all have independent volumes (and hence wouldn’t see each others’ writes, etc.).</p> <p>Could you perhaps say a little more about this application—in particular what the data-durability constraints are like? (E.g., can you afford to lose the past 1–2 days of updates.)</p> </div> <div itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter"> <meta itemprop="interactionType" content="http://schema.org/LikeAction"/> <meta itemprop="userInteractionCount" content="1" /> <span class='post-likes'>1 Like</span> </div> </div> <div id='post_7' itemprop='comment' itemscope itemtype='http://schema.org/Comment' class='topic-body crawler-post'> <div class='crawler-post-meta'> <span class="creator" itemprop="author" itemscope itemtype="http://schema.org/Person"> <a itemprop="url" href='https://community.fly.io/u/rondo'><span itemprop='name'>rondo</span></a> </span> <span class="crawler-post-infos"> <time itemprop='datePublished' datetime='2024-11-25T22:30:46Z' class='post-time'> November 25, 2024, 10:30pm </time> <meta itemprop='dateModified' content='2024-11-25T22:30:46Z'> <span itemprop='position'>7</span> </span> </div> <div class='post' itemprop='text'> <p>This is just a hobby/family app mainly to learn and have a bit of family interaction. Yes! I can afford to lose the last few days of updates. I also probably don’t need 3 machines.</p> </div> <div itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter"> <meta itemprop="interactionType" content="http://schema.org/LikeAction"/> <meta itemprop="userInteractionCount" content="0" /> <span class='post-likes'></span> </div> </div> <div id='post_8' itemprop='comment' itemscope itemtype='http://schema.org/Comment' class='topic-body crawler-post'> <div class='crawler-post-meta'> <span class="creator" itemprop="author" itemscope itemtype="http://schema.org/Person"> <a itemprop="url" href='https://community.fly.io/u/mayailurus'><span itemprop='name'>mayailurus</span></a> </span> <span class="crawler-post-infos"> <time itemprop='datePublished' datetime='2024-11-25T22:36:55Z' class='post-time'> November 25, 2024, 10:36pm </time> <meta itemprop='dateModified' content='2024-11-25T22:36:55Z'> <span itemprop='position'>8</span> </span> </div> <div class='post' itemprop='text'> <p>Neat… In that case, I think it’s ok to reduce down to just a single machine and a single volume.</p> <p>(Be sure to check the dashboard every 2–3 days, though, because when the underlying physical host fails (which eventually it will), there will be a limited amount of time to restore from the <a href="https://fly.io/docs/volumes/snapshots/">automatic snapshot…</a>)</p> </div> <div itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter"> <meta itemprop="interactionType" content="http://schema.org/LikeAction"/> <meta itemprop="userInteractionCount" content="0" /> <span class='post-likes'></span> </div> </div> <div id='post_9' itemprop='comment' itemscope itemtype='http://schema.org/Comment' class='topic-body crawler-post'> <div class='crawler-post-meta'> <span class="creator" itemprop="author" itemscope itemtype="http://schema.org/Person"> <a itemprop="url" href='https://community.fly.io/u/rondo'><span itemprop='name'>rondo</span></a> </span> <span class="crawler-post-infos"> <time itemprop='datePublished' datetime='2024-11-25T22:52:58Z' class='post-time'> November 25, 2024, 10:52pm </time> <meta itemprop='dateModified' content='2024-11-25T22:52:58Z'> <span itemprop='position'>9</span> </span> </div> <div class='post' itemprop='text'> <p>Thanks, I actually thought I only had one machine when I deployed 7 months ago. Now I have 3 more machines added 10 days ago. Should I just do a <code>fly scale count 1</code> to reduce to 1 machine?</p> </div> <div itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter"> <meta itemprop="interactionType" content="http://schema.org/LikeAction"/> <meta itemprop="userInteractionCount" content="0" /> <span class='post-likes'></span> </div> </div> <div id='post_10' itemprop='comment' itemscope itemtype='http://schema.org/Comment' class='topic-body crawler-post'> <div class='crawler-post-meta'> <span class="creator" itemprop="author" itemscope itemtype="http://schema.org/Person"> <a itemprop="url" href='https://community.fly.io/u/rondo'><span itemprop='name'>rondo</span></a> </span> <span class="crawler-post-infos"> <time itemprop='datePublished' datetime='2024-11-26T00:18:12Z' class='post-time'> November 26, 2024, 12:18am </time> <meta itemprop='dateModified' content='2024-11-26T00:18:12Z'> <span itemprop='position'>10</span> </span> </div> <div class='post' itemprop='text'> <p>Yes! that is exactly what I had to do. I haven’t been able to test the solution yet as fly deploy keeps timing out and throwing errors due I believe to a <a href="http://fly.io">fly.io</a> incident - ‘Degraded API Performance’ As soon as fly deploy succeeds I will mark message 6 as the solution.</p> </div> <div itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter"> <meta itemprop="interactionType" content="http://schema.org/LikeAction"/> <meta itemprop="userInteractionCount" content="1" /> <span class='post-likes'>1 Like</span> </div> </div> <div id='post_11' itemprop='comment' itemscope itemtype='http://schema.org/Comment' class='topic-body crawler-post'> <div class='crawler-post-meta'> <span class="creator" itemprop="author" itemscope itemtype="http://schema.org/Person"> <a itemprop="url" href='https://community.fly.io/u/khuezy'><span itemprop='name'>khuezy</span></a> </span> <span class="crawler-post-infos"> <time itemprop='datePublished' datetime='2024-11-26T00:38:21Z' class='post-time'> November 26, 2024, 12:38am </time> <meta itemprop='dateModified' content='2024-11-26T00:38:21Z'> <span itemprop='position'>11</span> </span> </div> <div class='post' itemprop='text'> <p>Why not use turso? They have a generous free tier for your use case</p> </div> <div itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter"> <meta itemprop="interactionType" content="http://schema.org/LikeAction"/> <meta itemprop="userInteractionCount" content="0" /> <span class='post-likes'></span> </div> </div> <div id='post_12' itemprop='comment' itemscope itemtype='http://schema.org/Comment' class='topic-body crawler-post'> <div class='crawler-post-meta'> <span class="creator" itemprop="author" itemscope itemtype="http://schema.org/Person"> <a itemprop="url" href='https://community.fly.io/u/rondo'><span itemprop='name'>rondo</span></a> </span> <span class="crawler-post-infos"> <time itemprop='datePublished' datetime='2024-11-26T23:27:55Z' class='post-time'> November 26, 2024, 11:27pm </time> <meta itemprop='dateModified' content='2024-11-26T23:27:55Z'> <span itemprop='position'>12</span> </span> </div> <div class='post' itemprop='text'> <p>Unfortunately I still need help.</p> <p>Running fly deploy gave a release command error:</p> <p><code>Error: release command failed - aborting deployment. error running release_command machine: error creating a release_command machine: failed to launch VM: request returned non-2xx status: 504: upstream request timeout (Request ID: 01JDKE88S8TGEYWXMYZJX6EAAB-syd) (Trace ID: 3f01c3a7536a15442713a1a7e2989eb7)</code></p> <p>I removed <code>release_command = "./bin/rails db:prepare"</code>from fly.toml [deploy] section and fly deploy ran. Was this the right thing to do?</p> <p>Here is the last part of the <code>fly deploy</code> console logs:</p> <pre><code class="lang-auto">--> Building image done image: registry.fly.io/holmes-genealogy:deployment-01JDN5D9XNGHXC6PP36A7NBZ68 image size: 275 MB Watch your deployment at https://fly.io/apps/holmes-genealogy/monitoring ------- Updating existing machines in 'holmes-genealogy' with rolling strategy WARNING The app is not listening on the expected address and will not be reachable by fly-proxy. You can fix this by configuring your app to listen on the following addresses: - 0.0.0.0:3000 Found these processes inside the machine with open listening sockets: PROCESS | ADDRESSES -----------------*--------------------------------------- /.fly/hallpass | [fdaa:9:141c:a7b:2d9:bcb0:cd83:2]:22 ------- ✔ Cleared lease for 78432d4a465618 ------- Checking DNS configuration for holmes-genealogy.fly.dev Visit your newly deployed app at https://etc </code></pre> <p>I had copied my development db (data.sqlite3) from db/development/data.sqlite3 to db/production/sqlite3 hoping that fly deploy with ‘litestack’ would then put it in the persistent volume (copilot suggested this). I don’t know if this has happened or not but I suspect that it hasn’t. I think fly is still using my postgres db.</p> <p>How do I check that my app is now using sqlite3?</p> <p>How do I make this change from postgres to sqlite3 work?</p> </div> <div itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter"> <meta itemprop="interactionType" content="http://schema.org/LikeAction"/> <meta itemprop="userInteractionCount" content="0" /> <span class='post-likes'></span> </div> </div> <div id='post_13' itemprop='comment' itemscope itemtype='http://schema.org/Comment' class='topic-body crawler-post'> <div class='crawler-post-meta'> <span class="creator" itemprop="author" itemscope itemtype="http://schema.org/Person"> <a itemprop="url" href='https://community.fly.io/u/rubys'><span itemprop='name'>rubys</span></a> </span> <span class="crawler-post-infos"> <time itemprop='datePublished' datetime='2024-11-26T23:39:53Z' class='post-time'> November 26, 2024, 11:39pm </time> <meta itemprop='dateModified' content='2024-11-26T23:39:53Z'> <span itemprop='position'>13</span> </span> </div> <div class='post' itemprop='text'> <aside class="quote no-group" data-username="rondo" data-post="12" data-topic="22787"> <div class="title"> <div class="quote-controls"></div> <img loading="lazy" alt="" width="24" height="24" src="https://sea1.discourse-cdn.com/fly1/user_avatar/community.fly.io/rondo/48/35187_2.png" class="avatar"> rondo:</div> <blockquote> <p>I removed <code>release_command = "./bin/rails db:prepare"</code>from fly.toml [deploy] section and fly deploy ran. Was this the right thing to do?</p> </blockquote> </aside> <p>Yes.</p> <aside class="quote no-group" data-username="rondo" data-post="12" data-topic="22787"> <div class="title"> <div class="quote-controls"></div> <img loading="lazy" alt="" width="24" height="24" src="https://sea1.discourse-cdn.com/fly1/user_avatar/community.fly.io/rondo/48/35187_2.png" class="avatar"> rondo:</div> <blockquote> <p>I had copied my development db (data.sqlite3) from db/development/data.sqlite3 to db/production/sqlite3 hoping that fly deploy with ‘litestack’ would then put it in the persistent volume (copilot suggested this).</p> </blockquote> </aside> <p>I don’t know enough about litestack to answer this question.</p> <aside class="quote no-group" data-username="rondo" data-post="12" data-topic="22787"> <div class="title"> <div class="quote-controls"></div> <img loading="lazy" alt="" width="24" height="24" src="https://sea1.discourse-cdn.com/fly1/user_avatar/community.fly.io/rondo/48/35187_2.png" class="avatar"> rondo:</div> <blockquote> <p>How do I check that my app is now using sqlite3?</p> </blockquote> </aside> <p>Is the DATABASE_URL secret still set? Try running <code>fly ssh console</code> and then “echo $DATABASE_URL”. If that says postgres, you are still using postgres.</p> <p>If set, unset it with:</p> <pre><code class="lang-auto">fly secrets unset DATABASE_URL </code></pre> <p>With that secret unset, you CAN’T access your postgres database, so if things are still working you are using sqlite3.</p> </div> <div itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter"> <meta itemprop="interactionType" content="http://schema.org/LikeAction"/> <meta itemprop="userInteractionCount" content="0" /> <span class='post-likes'></span> </div> </div> <div id='post_14' itemprop='comment' itemscope itemtype='http://schema.org/Comment' class='topic-body crawler-post'> <div class='crawler-post-meta'> <span class="creator" itemprop="author" itemscope itemtype="http://schema.org/Person"> <a itemprop="url" href='https://community.fly.io/u/rondo'><span itemprop='name'>rondo</span></a> </span> <span class="crawler-post-infos"> <time itemprop='datePublished' datetime='2024-11-27T00:09:09Z' class='post-time'> November 27, 2024, 12:09am </time> <meta itemprop='dateModified' content='2024-11-27T00:09:09Z'> <span itemprop='position'>14</span> </span> </div> <div class='post' itemprop='text'> <pre><code class="lang-auto">fly ssh console Connecting to fdaa:9:141c:a7b:2d9:bcb0:cd83:2... complete root@78432d4a465618:/rails# echo $DATABASE_URL postgres://holmes_genealogy:urguBGKwKeukMlZ@holmes-genealogy-db.flycast:5432/holmes_genealogy?sslmode=disable </code></pre> <p>and</p> <pre data-code-wrap="sh"><code class="lang-sh">fly secrets unset DATABASE_URL Updating existing machines in 'holmes-genealogy' with rolling strategy ------- ✔ Machine 78432d4a465618 [app] update succeeded ------- Checking DNS configuration for holmes-genealogy.fly.dev </code></pre> <p>Now <code>echo $DATABASE_URL</code>returns nothing.</p> <p>The landing page for my app loads, however, I am unable to log in. How can I interact with the sqlite3 file, maybe run db:seeds. Any other ideas?</p> </div> <div itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter"> <meta itemprop="interactionType" content="http://schema.org/LikeAction"/> <meta itemprop="userInteractionCount" content="0" /> <span class='post-likes'></span> </div> </div> <div id='post_15' itemprop='comment' itemscope itemtype='http://schema.org/Comment' class='topic-body crawler-post'> <div class='crawler-post-meta'> <span class="creator" itemprop="author" itemscope itemtype="http://schema.org/Person"> <a itemprop="url" href='https://community.fly.io/u/rubys'><span itemprop='name'>rubys</span></a> </span> <span class="crawler-post-infos"> <time itemprop='datePublished' datetime='2024-11-27T00:35:49Z' class='post-time'> November 27, 2024, 12:35am </time> <meta itemprop='dateModified' content='2024-11-27T00:35:49Z'> <span itemprop='position'>15</span> </span> </div> <div class='post' itemprop='text'> <p>A Rails 7.2.2 app would typically have a <code>bin/docker-entrypoint</code> containing the following:</p> <pre data-code-wrap="sh"><code class="lang-sh"># If running the rails server then create or migrate existing database if [ "${1}" == "./bin/rails" ] && [ "${2}" == "server" ]; then ./bin/rails db:prepare fi </code></pre> <p>This would load your seeds.</p> <p>You can interact with your database by running <code>fly ssh console</code> and then running commands on that machine.</p> <p>I don’t know enough about litestack to tell you what you should be looking to do, but you will want your underlying database on the volume (i.e., <code>/data</code>)</p> </div> <div itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter"> <meta itemprop="interactionType" content="http://schema.org/LikeAction"/> <meta itemprop="userInteractionCount" content="0" /> <span class='post-likes'></span> </div> </div> <div id='post_16' itemprop='comment' itemscope itemtype='http://schema.org/Comment' class='topic-body crawler-post'> <div class='crawler-post-meta'> <span class="creator" itemprop="author" itemscope itemtype="http://schema.org/Person"> <a itemprop="url" href='https://community.fly.io/u/rondo'><span itemprop='name'>rondo</span></a> </span> <span class="crawler-post-infos"> <time itemprop='datePublished' datetime='2024-11-27T01:20:18Z' class='post-time'> November 27, 2024, 1:20am </time> <meta itemprop='dateModified' content='2024-11-27T02:44:14Z'> <span itemprop='position'>16</span> </span> </div> <div class='post' itemprop='text'> <p>Thank you. I have that bin/docker-entrypoint. Maybe that was my problem as I wanted to just adopt my development db as is but I had a small amount of seed data exposed which I didn’t want loaded.<br> I was able to find the sqlite3 file at /data/production/data.sqlite3.<br> Am I able to deploy again after removing the rogue seed data and have everything reset to the original intended starting point. In other words will a new fly deploy overwrite or supersede the existing sqlite3 file.<br> <del>If I can do that then I think everything is going to be ok.</del><br> No. It seems that the table structures did not come across to the volume. That is why I had the landing page and nothing else. What I need to do is direct copy my development database to the /data/production folder in the volume. Can you help me do that?</p> </div> <div itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter"> <meta itemprop="interactionType" content="http://schema.org/LikeAction"/> <meta itemprop="userInteractionCount" content="0" /> <span class='post-likes'></span> </div> </div> <div id='post_17' itemprop='comment' itemscope itemtype='http://schema.org/Comment' class='topic-body crawler-post'> <div class='crawler-post-meta'> <span class="creator" itemprop="author" itemscope itemtype="http://schema.org/Person"> <a itemprop="url" href='https://community.fly.io/u/mayailurus'><span itemprop='name'>mayailurus</span></a> </span> <span class="crawler-post-infos"> <time itemprop='datePublished' datetime='2024-11-27T02:49:12Z' class='post-time'> November 27, 2024, 2:49am </time> <meta itemprop='dateModified' content='2024-11-27T02:55:23Z'> <span itemprop='position'>17</span> </span> </div> <div class='post' itemprop='text'> <aside class="quote no-group" data-username="rondo" data-post="16" data-topic="22787"> <div class="title"> <div class="quote-controls"></div> <img loading="lazy" alt="" width="24" height="24" src="https://sea1.discourse-cdn.com/fly1/user_avatar/community.fly.io/rondo/48/35187_2.png" class="avatar"> rondo:</div> <blockquote> <p>What I need to do is direct copy my development database to the /data/production folder in the volume.</p> </blockquote> </aside> <p>SFTP is easiest for that, in my opinion:</p> <p><a href="https://community.fly.io/t/backup-and-restore-sqlite-db-to-server/21232/2">https://community.fly.io/t/backup-and-restore-sqlite-db-to-server/21232/2</a></p> <p>(You <em>may</em> need an extra step to tweak permissions at the end, in this case; I don’t use Rails myself…)</p> </div> <div itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter"> <meta itemprop="interactionType" content="http://schema.org/LikeAction"/> <meta itemprop="userInteractionCount" content="0" /> <span class='post-likes'></span> </div> </div> <div id='post_18' itemprop='comment' itemscope itemtype='http://schema.org/Comment' class='topic-body crawler-post'> <div class='crawler-post-meta'> <span class="creator" itemprop="author" itemscope itemtype="http://schema.org/Person"> <a itemprop="url" href='https://community.fly.io/u/rondo'><span itemprop='name'>rondo</span></a> </span> <span class="crawler-post-infos"> <time itemprop='datePublished' datetime='2024-11-27T03:11:53Z' class='post-time'> November 27, 2024, 3:11am </time> <meta itemprop='dateModified' content='2024-11-27T03:11:53Z'> <span itemprop='position'>18</span> </span> </div> <div class='post' itemprop='text'> <p>Thank you, I will give it a go.</p> </div> <div itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter"> <meta itemprop="interactionType" content="http://schema.org/LikeAction"/> <meta itemprop="userInteractionCount" content="0" /> <span class='post-likes'></span> </div> </div> <div id='post_19' itemprop='comment' itemscope itemtype='http://schema.org/Comment' class='topic-body crawler-post'> <div class='crawler-post-meta'> <span class="creator" itemprop="author" itemscope itemtype="http://schema.org/Person"> <a itemprop="url" href='https://community.fly.io/u/rondo'><span itemprop='name'>rondo</span></a> </span> <span class="crawler-post-infos"> <time itemprop='datePublished' datetime='2024-11-27T05:43:11Z' class='post-time'> November 27, 2024, 5:43am </time> <meta itemprop='dateModified' content='2024-11-27T05:43:11Z'> <span itemprop='position'>19</span> </span> </div> <div class='post' itemprop='text'> <aside class="quote no-group" data-username="rondo" data-post="14" data-topic="22787"> <div class="title"> <div class="quote-controls"></div> <img loading="lazy" alt="" width="24" height="24" src="https://sea1.discourse-cdn.com/fly1/user_avatar/community.fly.io/rondo/48/35187_2.png" class="avatar"> rondo:</div> <blockquote> <p><code>fly secrets unset DATABASE_URL</code></p> </blockquote> </aside> <p>Yes the backup and restore process with SFTP worked but now I have a problem with my machine that starts and stops almost immediately. I am going to leave it until tomorrow.</p> </div> <div itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter"> <meta itemprop="interactionType" content="http://schema.org/LikeAction"/> <meta itemprop="userInteractionCount" content="0" /> <span class='post-likes'></span> </div> </div> <div id='post_20' itemprop='comment' itemscope itemtype='http://schema.org/Comment' class='topic-body crawler-post'> <div class='crawler-post-meta'> <span class="creator" itemprop="author" itemscope itemtype="http://schema.org/Person"> <a itemprop="url" href='https://community.fly.io/u/rondo'><span itemprop='name'>rondo</span></a> </span> <span class="crawler-post-infos"> <time itemprop='datePublished' datetime='2024-11-28T05:33:55Z' class='post-time'> November 28, 2024, 5:33am </time> <meta itemprop='dateModified' content='2024-11-28T05:33:55Z'> <span itemprop='position'>20</span> </span> </div> <div class='post' itemprop='text'> <p>Just want to thank Mayailurus and Rubys for your help. I was going around in circles until I realised that I had reduced my machines to 1 but still had:</p> <pre><code class="lang-auto">auto_stop_machines=true auto_start_machines=true </code></pre> <p>in my fly.toml file.<br> I then had to sort out permissions because when I used SFTP to upload my db it changed the permissions. There is more than 1 solution here but I clicked the latest<br> Took me a long time but I learnt a lot.</p> </div> <div itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter"> <meta itemprop="interactionType" content="http://schema.org/LikeAction"/> <meta itemprop="userInteractionCount" content="1" /> <span class='post-likes'>1 Like</span> </div> </div> </div> <div id="related-topics" class="more-topics__list " role="complementary" aria-labelledby="related-topics-title"> <h3 id="related-topics-title" class="more-topics__list-title"> Related topics </h3> <div class="topic-list-container" itemscope itemtype='http://schema.org/ItemList'> <meta itemprop='itemListOrder' content='http://schema.org/ItemListOrderDescending'> <table class='topic-list'> <thead> <tr> <th>Topic</th> <th></th> <th class="replies">Replies</th> <th class="views">Views</th> <th>Activity</th> </tr> </thead> <tbody> <tr class="topic-list-item" id="topic-list-item-20564"> <td class="main-link" itemprop='itemListElement' itemscope itemtype='http://schema.org/ListItem'> <meta itemprop='position' content='1'> <span class="link-top-line"> <a itemprop='url' href='https://community.fly.io/t/sqlite-rails-in-production-article/20564' class='title raw-link raw-topic-link'>SQLite & Rails in Production article</a> </span> <div class="link-bottom-line"> <div class="discourse-tags"> <a href='https://community.fly.io/tag/rails' class='discourse-tag'>rails</a> , <a href='https://community.fly.io/tag/sqlite' class='discourse-tag'>sqlite</a> </div> </div> </td> <td class="replies"> <span class='posts' title='posts'>1</span> </td> <td class="views"> <span class='views' title='views'>99</span> </td> <td> July 3, 2024 </td> </tr> <tr class="topic-list-item" id="topic-list-item-16431"> <td class="main-link" itemprop='itemListElement' itemscope itemtype='http://schema.org/ListItem'> <meta itemprop='position' content='2'> <span class="link-top-line"> <a itemprop='url' href='https://community.fly.io/t/litestack-problems-with-deployment/16431' class='title raw-link raw-topic-link'>Litestack problems with deployment</a> </span> <div class="link-bottom-line"> <a href='/c/questions-and-help/build-debugging/12' class='badge-wrapper bullet'> <span class='badge-category-bg' style='background-color: #92278F'></span> <span class='badge-category clear-badge'> <span class='category-name'>Build debugging</span> </span> </a> <div class="discourse-tags"> <a href='https://community.fly.io/tag/sqlite' class='discourse-tag'>sqlite</a> </div> </div> </td> <td class="replies"> <span class='posts' title='posts'>5</span> </td> <td class="views"> <span class='views' title='views'>529</span> </td> <td> January 11, 2024 </td> </tr> <tr class="topic-list-item" id="topic-list-item-21449"> <td class="main-link" itemprop='itemListElement' itemscope itemtype='http://schema.org/ListItem'> <meta itemprop='position' content='3'> <span class="link-top-line"> <a itemprop='url' href='https://community.fly.io/t/production-data-different-than-data-in-fly-console/21449' class='title raw-link raw-topic-link'>Production data different than data in fly console</a> </span> <div class="link-bottom-line"> <div class="discourse-tags"> <a href='https://community.fly.io/tag/rails' class='discourse-tag'>rails</a> , <a href='https://community.fly.io/tag/sqlite' class='discourse-tag'>sqlite</a> , <a href='https://community.fly.io/tag/storage' class='discourse-tag'>storage</a> </div> </div> </td> <td class="replies"> <span class='posts' title='posts'>3</span> </td> <td class="views"> <span class='views' title='views'>35</span> </td> <td> August 28, 2024 </td> </tr> <tr class="topic-list-item" id="topic-list-item-20796"> <td class="main-link" itemprop='itemListElement' itemscope itemtype='http://schema.org/ListItem'> <meta itemprop='position' content='4'> <span class="link-top-line"> <a itemprop='url' href='https://community.fly.io/t/sqlite3-command-not-found/20796' class='title raw-link raw-topic-link'>sqlite3 command not found</a> </span> <div class="link-bottom-line"> <div class="discourse-tags"> <a href='https://community.fly.io/tag/sqlite' class='discourse-tag'>sqlite</a> </div> </div> </td> <td class="replies"> <span class='posts' title='posts'>3</span> </td> <td class="views"> <span class='views' title='views'>221</span> </td> <td> July 20, 2024 </td> </tr> <tr class="topic-list-item" id="topic-list-item-22852"> <td class="main-link" itemprop='itemListElement' itemscope itemtype='http://schema.org/ListItem'> <meta itemprop='position' content='5'> <span class="link-top-line"> <a itemprop='url' href='https://community.fly.io/t/simple-rails-8-sqlite3-deployment-example-article-request/22852' class='title raw-link raw-topic-link'>Simple Rails 8 & Sqlite3 Deployment Example / Article Request</a> </span> <div class="link-bottom-line"> <div class="discourse-tags"> <a href='https://community.fly.io/tag/wishlist' class='discourse-tag'>wishlist</a> , <a href='https://community.fly.io/tag/docs' class='discourse-tag'>docs</a> , <a href='https://community.fly.io/tag/rails' class='discourse-tag'>rails</a> , <a href='https://community.fly.io/tag/sqlite' class='discourse-tag'>sqlite</a> , <a href='https://community.fly.io/tag/litefs' class='discourse-tag'>litefs</a> </div> </div> </td> <td class="replies"> <span class='posts' title='posts'>5</span> </td> <td class="views"> <span class='views' title='views'>51</span> </td> <td> December 2, 2024 </td> </tr> </tbody> </table> </div> </div> </div> <footer class="container wrap"> <nav class='crawler-nav'> <ul> <li itemscope itemtype='http://schema.org/SiteNavigationElement'> <span itemprop='name'> <a href='/' itemprop="url">Home </a> </span> </li> <li itemscope itemtype='http://schema.org/SiteNavigationElement'> <span itemprop='name'> <a href='/categories' itemprop="url">Categories </a> </span> </li> <li itemscope itemtype='http://schema.org/SiteNavigationElement'> <span itemprop='name'> <a href='/guidelines' itemprop="url">Guidelines </a> </span> </li> <li itemscope itemtype='http://schema.org/SiteNavigationElement'> <span itemprop='name'> <a href='/tos' itemprop="url">Terms of Service </a> </span> </li> <li itemscope itemtype='http://schema.org/SiteNavigationElement'> <span itemprop='name'> <a href='/privacy' itemprop="url">Privacy Policy </a> </span> </li> </ul> </nav> <p class='powered-by-link'>Powered by <a href="https://www.discourse.org">Discourse</a>, best viewed with JavaScript enabled</p> </footer> <div class="buorg"><div>Unfortunately, <a href="https://www.discourse.org/faq/#browser">your browser is unsupported</a>. Please <a href="https://browsehappy.com">switch to a supported browser</a> to view rich content, log in and reply.</div></div> </body> </html>