The recipes.blue monorepo recipes.blue
recipes appview atproto
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix: name image ref field properly in db

+177 -1
+6
libs/database/migrations/0003_fixed_peter_parker.sql
··· 1 + DROP INDEX IF EXISTS "recipes_id_unique";--> statement-breakpoint 2 + DROP INDEX IF EXISTS "recipes_rkey_author_did_unique";--> statement-breakpoint 3 + ALTER TABLE `recipes` ALTER COLUMN "title" TO "title" text NOT NULL;--> statement-breakpoint 4 + CREATE UNIQUE INDEX `recipes_id_unique` ON `recipes` (`id`);--> statement-breakpoint 5 + CREATE UNIQUE INDEX `recipes_rkey_author_did_unique` ON `recipes` (`rkey`,`author_did`);--> statement-breakpoint 6 + ALTER TABLE `recipes` ADD `image_ref` text;
+163
libs/database/migrations/meta/0003_snapshot.json
··· 1 + { 2 + "version": "6", 3 + "dialect": "sqlite", 4 + "id": "fa77a98d-2ae1-49d5-ab93-81492dcbdebd", 5 + "prevId": "5e0d9054-f192-4db9-8afe-afcabe08e661", 6 + "tables": { 7 + "auth_session": { 8 + "name": "auth_session", 9 + "columns": { 10 + "key": { 11 + "name": "key", 12 + "type": "text", 13 + "primaryKey": true, 14 + "notNull": true, 15 + "autoincrement": false 16 + }, 17 + "session": { 18 + "name": "session", 19 + "type": "text", 20 + "primaryKey": false, 21 + "notNull": true, 22 + "autoincrement": false 23 + } 24 + }, 25 + "indexes": {}, 26 + "foreignKeys": {}, 27 + "compositePrimaryKeys": {}, 28 + "uniqueConstraints": {}, 29 + "checkConstraints": {} 30 + }, 31 + "auth_state": { 32 + "name": "auth_state", 33 + "columns": { 34 + "key": { 35 + "name": "key", 36 + "type": "text", 37 + "primaryKey": true, 38 + "notNull": true, 39 + "autoincrement": false 40 + }, 41 + "state": { 42 + "name": "state", 43 + "type": "text", 44 + "primaryKey": false, 45 + "notNull": true, 46 + "autoincrement": false 47 + } 48 + }, 49 + "indexes": {}, 50 + "foreignKeys": {}, 51 + "compositePrimaryKeys": {}, 52 + "uniqueConstraints": {}, 53 + "checkConstraints": {} 54 + }, 55 + "recipes": { 56 + "name": "recipes", 57 + "columns": { 58 + "id": { 59 + "name": "id", 60 + "type": "integer", 61 + "primaryKey": true, 62 + "notNull": true, 63 + "autoincrement": false 64 + }, 65 + "rkey": { 66 + "name": "rkey", 67 + "type": "text", 68 + "primaryKey": false, 69 + "notNull": true, 70 + "autoincrement": false 71 + }, 72 + "title": { 73 + "name": "title", 74 + "type": "text", 75 + "primaryKey": false, 76 + "notNull": true, 77 + "autoincrement": false 78 + }, 79 + "image_ref": { 80 + "name": "image_ref", 81 + "type": "text", 82 + "primaryKey": false, 83 + "notNull": false, 84 + "autoincrement": false 85 + }, 86 + "time": { 87 + "name": "time", 88 + "type": "integer", 89 + "primaryKey": false, 90 + "notNull": true, 91 + "autoincrement": false, 92 + "default": 0 93 + }, 94 + "description": { 95 + "name": "description", 96 + "type": "text", 97 + "primaryKey": false, 98 + "notNull": false, 99 + "autoincrement": false 100 + }, 101 + "ingredients": { 102 + "name": "ingredients", 103 + "type": "text", 104 + "primaryKey": false, 105 + "notNull": true, 106 + "autoincrement": false 107 + }, 108 + "steps": { 109 + "name": "steps", 110 + "type": "text", 111 + "primaryKey": false, 112 + "notNull": true, 113 + "autoincrement": false 114 + }, 115 + "created_at": { 116 + "name": "created_at", 117 + "type": "text", 118 + "primaryKey": false, 119 + "notNull": true, 120 + "autoincrement": false 121 + }, 122 + "author_did": { 123 + "name": "author_did", 124 + "type": "text", 125 + "primaryKey": false, 126 + "notNull": true, 127 + "autoincrement": false 128 + } 129 + }, 130 + "indexes": { 131 + "recipes_id_unique": { 132 + "name": "recipes_id_unique", 133 + "columns": [ 134 + "id" 135 + ], 136 + "isUnique": true 137 + }, 138 + "recipes_rkey_author_did_unique": { 139 + "name": "recipes_rkey_author_did_unique", 140 + "columns": [ 141 + "rkey", 142 + "author_did" 143 + ], 144 + "isUnique": true 145 + } 146 + }, 147 + "foreignKeys": {}, 148 + "compositePrimaryKeys": {}, 149 + "uniqueConstraints": {}, 150 + "checkConstraints": {} 151 + } 152 + }, 153 + "views": {}, 154 + "enums": {}, 155 + "_meta": { 156 + "schemas": {}, 157 + "tables": {}, 158 + "columns": {} 159 + }, 160 + "internal": { 161 + "indexes": {} 162 + } 163 + }
+7
libs/database/migrations/meta/_journal.json
··· 22 22 "when": 1734642833768, 23 23 "tag": "0002_redundant_wither", 24 24 "breakpoints": true 25 + }, 26 + { 27 + "idx": 3, 28 + "version": "6", 29 + "when": 1734643156502, 30 + "tag": "0003_fixed_peter_parker", 31 + "breakpoints": true 25 32 } 26 33 ] 27 34 }
+1 -1
libs/database/src/schema.ts
··· 21 21 id: int('id').primaryKey().notNull().unique(), 22 22 rkey: text('rkey').notNull(), 23 23 title: text('title').notNull(), 24 - imageRef: text('title'), 24 + imageRef: text('image_ref'), 25 25 time: int('time').notNull().default(0), 26 26 description: text('description'), 27 27 ingredients: text('ingredients', { mode: 'json' }).$type<Partial<Ingredient>[]>().notNull(),